Step to it with Pink Boutique's gorgeous range of high heels for any and every occasion. From super high stilettos to babe'in block heels, whether it's party shoes or heeled heeled sandals for holiday, we've got the hottest heel collection. Take it higher with a pair of perfect platforms and for those off duty days, a pair of heeled boots will transform any daytime look!
Stilettos Party Shoes Midi Dresses Bags Hair
Category
- High Heels
- Block Heels
- Heeled Sandals
- Party Shoes
- Platform Heels
- Stilettos
Clear all Tags
size
- 3
- 4
- 5
- 6
- 7
- 8
- 8-10
- uk 3
- uk 4
- uk 5
- uk 6
- uk 7
- uk 8
colour
- beige
- black
- blue
- brown
- champagne
- cobalt
- cream
- gold
- green
- hot pink
- multi
- nude
- pink
- purple
- red
- rose gold
- silver
- tan
- white
'); } if (tagHolder.find('.'+currentTag ).length === 0) { tagHolder.find('.'+group ).append(''+ currentTag.replace('-', ' ') +''); } }; displayPriceTag = function(array) { currentTags.removeClass('hide'); currentTags.find('.group-price').remove(); var extraChar = $('.priceSlider').data('extra-char'); var lastArray = array.length - 1; tagHolder.append('
' + extraChar + array[0] +' - ' + extraChar + array[lastArray] + '
'); }; clearTags = function() { currentTags.find('.group').remove(); }; /** * Makes the query string for search results AJAX call */ function getQueryStr() { var searchUrl = '/search?type=product&view=collection-filters-ajax&q='; var qVal = ''; var excludeTag = ''; var val = ''; var initialQVal = ''; initialQVal = 'tag:"collection: shoes"+AND+tag:"high-heels"+AND+tag:"instock"';qVal += initialQVal; // add sliders vals (only desktop filters to prevent dupe vals) $filterSlidersDesktop.filter('[data-tag-val]').each(function(index, el) { var val = $(this).attr('data-tag-val'); if (val.indexOf("+OR+") >= 0){ //qVal += val; if (index === 0) { if (qVal !== '') { qVal += '+AND+'; } qVal += val; } else { if (qVal !== '') { qVal += '+OR+'; } qVal += val; } }else{ val = val.replace("size-", "size:"); //console.log('val', val); if (val.indexOf("tag") >= 0){ qVal += '+AND+' + val + ''; }else{ qVal += '+AND+tag:"' + val + '"'; } } }); // add checkbox vals (only desktop filters to prevent dupe vals) $navGroupsDesktop.each(function(gIndex) { $selectedFilters = $(this).find('.active > a'); $selectedFilters.each(function(filterIndex) { var tagVal = $(this).attr('data-tag-val'); if (filterIndex === 0) { if (qVal !== '') { qVal += '+AND+'; } qVal += 'tag:"' + tagVal + '"'; } else { if (qVal !== '') { qVal += '+OR+'; } qVal += 'tag:"' + tagVal + '"'; } displayCurrentTags(tagVal); }); }); // if we have no selected filters, reload page to restore initial content if (qVal === initialQVal) { var url = window.location.href; if ( initialTag != undefined && url.indexOf(initialTag) != 1 ) { //console.log('contains' + initialTag); window.location.href = url.replace('/'+initialTag, ''); } else { window.location.reload(); } return false; } //qVal += '+NOT+tag:' + excludeTag; return searchUrl + qVal; } /** * Resets sort menu to default option, and disables menu * Since search result queries can't be sorted, this is called after * filter selections are made. */ function resetAndDisableSort() { // reset sort menu to default option $('#sortBy') .val( $('#sortBy option[default-selected]').val() ) .prop('disabled', true) .closest('.sort-filter') .css('visibility', 'hidden'); // remove ?sort_by= query string from URL window.history.replaceState({}, '', window.location.pathname) } /** * Gets filtered results from custom search template via AJAX & updates DOM */ function setFilteredResults(queryUrl, scrollTop) { // log absolute URLs of search query for easy query debugging var siteUrl = window.location.href .replace(window.location.pathname, '') .replace(window.location.search, '') .replace(window.location.hash, ''); if (!queryUrl) { return console.error('No valid queryUrl supplied.') } //console.log('queryUrl', siteUrl + queryUrl.replace(/\s/gi, '+')); $(".collection-sidebar-template .sort-filter").css("visibility", "hidden"); // hide sorting to stop random / incorrect results toggleAjaxControls(false); $.get(queryUrl, function(data) { var $newResults = $($(data).find('.results__items').html()); var $newPag = $($(data).find('.results__pagination').html()); var $newTopPag = $($(data).find('.results__pagination').html()); var $oldResults = $('.grid.collection-list'); $oldResults.replaceWith($newResults); $pagContainer.html($newPag); $pagTopContainer.html($newTopPag); var newResult = $newResults.find('.product-card').length; $('.products-count .number_products').text(newResult); resetAndDisableSort(); // scroll to top after content update (used for pag links) if (scrollTop) { $('html, body').animate({ scrollTop: '0' }); } // AJAX-ify pagination links on the first load if (!pagIsAjaxed) { $pagContainer.on('click', '.js-ajax-pagination a', function(e) { e.preventDefault(); var href = $(this).attr('href'); setFilteredResults(href, true); }); $pagTopContainer.on('click', '.js-ajax-pagination a', function(e) { e.preventDefault(); var href = $(this).attr('href'); setFilteredResults(href, true); }); pagIsAjaxed = true; } toggleAjaxControls(true); }); } /** * Enable/disable controls during/after AJAX loads * * @param {boolean} enable - true enables/false disables */ function toggleAjaxControls(enable) { $filterLinks.toggleClass('ajax-disabled', !enable); $filterSliders.toggleClass('ajax-disabled', !enable); $pagContainer.find('a').toggleClass('ajax-disabled', !enable); } /** * Updates slider description text as value changes */ function handleRangeSliderChange(filterName, filterData) { var sliderVal = filterData.from; var slidersSelector = '.' + filterName + 'Slider'; // update both sliders (mobile/desktop) $(slidersSelector).each(function() { // update slider value text var $navGroup = $(this).closest('.nav-group'); var $sliderTxts = $navGroup.find('.slider__text p'); var $sliderValTxt = $sliderTxts.eq(sliderVal); if ($sliderValTxt.length) { $navGroup .find('.extra-description') .html($sliderValTxt.html()); // if we have multiple slider texts, just none for this val, blank it // if we only have one slider text p, do nothing (display for all values) } else if ($sliderTxts.length > 1) { $navGroup .find('.extra-description') .html(''); } }); } /** * Updates slider values and retrieves new results */ function handleRangeSliderFinish(filterName, filterData, filterFullRange) { fullSliderVal = [] sliderVal = filterData.from_value; sliderValTo = filterData.to_value; var slidersSelector = '.' + filterName + 'Slider'; var sliderArray = filterFullRange.split(", "); $.each(sliderArray, function(index, value) { if ( parseInt(value) > parseInt(sliderVal) ){ if( parseInt(value) < parseInt(sliderValTo) ){ fullSliderVal.push(parseInt(value)); } } }); if (sliderVal == sliderValTo){ fullSliderVal.unshift(sliderVal); }else{ fullSliderVal.unshift(sliderVal); fullSliderVal.push(sliderValTo); } //console.log('fullSliderVal', fullSliderVal); displayPriceTag(fullSliderVal); var oldSliderVal = 0; var $sliderHolder = $(slidersSelector).first().closest('.slider__holder'); var hasVal = $sliderHolder[0].hasAttribute('data-val'); if (hasVal) { oldSliderVal = parseInt( $sliderHolder.attr('data-val'), 10 ); } // do nothing if value didn't change if (sliderVal === oldSliderVal) { //console.info('No slider value change.'); // return; } // update both sliders (mobile/desktop) $(slidersSelector).each(function() { // update slider value var slider = $(this).data('ionRangeSlider'); slider.update({ from_value: sliderVal, to_value: sliderValTo }); }); //console.log('sliderVal', sliderVal); var newQval = "" if (sliderVal === 0) { // 0 resets sliders to "no value" state $(slidersSelector) .closest('.slider__holder') .removeAttr('data-val data-tag-val'); } else { newQval = "" $.each(fullSliderVal, function(index, value) { //console.log('value', value); if(value != null){ if (index === 0) { newQval += 'tag:"' + filterName + '-' + value +'"'; }else{ newQval += '+OR+tag:"' + filterName + '-' + value +'"'; } } //console.log('newQval', newQval); }); // add value to DOM for getQueryStr() $(slidersSelector) .closest('.slider__holder') .attr('data-val', sliderVal) .attr('data-tag-val', newQval); } var queryStr = getQueryStr(); if (queryStr) { setFilteredResults(queryStr); } } function handleFilterClick(e) { e.preventDefault(); clearTags(); if ($(this).hasClass('ajax-disabled')) { return; } var tagVal = $(this).attr('data-tag-val'); // change all instances of this link in the DOM (mobile & desktop) var $allLinks = $('[data-tag-val="' + tagVal + '"]'); $allLinks.parent().toggleClass('active'); var queryStr = getQueryStr(); if (queryStr) { setFilteredResults(queryStr); } } function init() { setTagVals(); $filterLinks.on('click', handleFilterClick); checkInitialTags(); } init(); // export functions used in other Liquid templates window.handleRangeSliderFinish = handleRangeSliderFinish; window.handleRangeSliderChange = handleRangeSliderChange; }());