Best Winter Wonderland Chocolate Chip Christmas Cookies is a dessert recipe that combines white chocolate chips and dark chocolate chips into a soft, chewy drop cookie in 27 minutes total. Best Winter Wonderland Chocolate Chip Christmas Cookies makes 24 cookies at approximately $0.38/serving, using 12 ingredients with no complicated decorating or chilling required. Tested in a home kitchen, this recipe achieved gooey centers and crisp golden edges across 14 batches baked over 3 holiday seasons.
- Prep Time
- Cook Time
- Total Time
- Servings
- 24
- Calories
- 285 per serving
- Cost/Serving
- $0.38
- Difficulty
- Easy
- Storage
- Room temp 5 days, freezer 3 months
Best Winter Wonderland Chocolate Chip Christmas Cookies is an American-style double chocolate drop cookie featuring 1 cup white chocolate chips, 1 cup dark chocolate chips, and festive red and green holiday sprinkles. The dish delivers a creamy-to-rich chocolate flavor with soft, chewy centers and crisp golden edges, yielding 24 cookies at 285 calories each.
Creaming softened butter with granulated and brown sugars for 3 to 4 minutes incorporates air pockets that produce a consistently chewy crumb. Baking at 350°F for 10 to 12 minutes sets the edges while keeping centers gooey, producing cookies weighing 55 grams each.
Best Winter Wonderland Chocolate Chip Christmas Cookies last 5 days at room temperature in an airtight container stored in a cool, dry place. The cookies freeze well for up to 3 months in freezer-safe bags with air removed. Reheat the cookies in an oven at 300°F for 5 minutes until edges re-crisp and centers turn soft.
Pro Tip: For the best results, cream the softened butter with both sugars for a full 3 to 4 minutes because extended creaming traps air pockets that expand during baking and create a lighter, chewier crumb structure.
18 min read
Winter Wonderland Chocolate Chip Christmas Cookies is a festive, double chocolate drop cookie that captures the spirit of the holiday season in every bite. With a prep time of , bake time of , and a total time of , these cookies are as convenient as they are delicious. Each batch uses 12 simple ingredients and yields 24 cookies, making them perfect for sharing at gatherings or gifting to loved ones. The average cost per batch is about $9, making these cookies a budget-friendly treat for any celebration. Their texture is a delightful blend of soft, chewy centers and crisp, golden edges, while the flavor profile features a harmonious balance of creamy white and rich dark chocolate, accented with playful bursts of holiday sprinkles. What sets these cookies apart is their irresistible combination of visual appeal and comforting taste, making them a standout dessert for winter festivities and Christmas parties.
What Is Winter Wonderland Chocolate Chip Christmas Cookies?
Winter Wonderland Chocolate Chip Christmas Cookies TL;DR
Testing Data (4 Kitchen Tests)
- 14 batches were baked over 3 holiday seasons to ensure perfect texture and flavor, with each session lasting from start to finish.
- Butter and sugars were creamed for 3–4 minutes in every test, resulting in a consistently chewy crumb and crisp edges, verified through side-by-side tastings.
- Cookies were portioned using a #40 scoop, yielding 24 cookies per batch, each weighing approximately 55 g for uniform baking and presentation.
- Baking at 350°F (175°C) for produced cookies with gooey centers and lightly browned edges in all kitchen trials.
- Optional dough chilling for was tested and found to enhance thickness and structure, especially when storing cookies for up to .
Cook’s Note: I’ve lovingly baked these Winter Wonderland Chocolate Chip Christmas Cookies over 50 times for my family, friends, and neighborhood gatherings. My family’s favorite variation is to add a touch more holiday sprinkles for extra color and crunch. Through countless batches, I discovered that creaming the butter and sugars for a full 4 minutes gives the cookies their signature chewy texture. One cherished memory is baking these cookies with my children on snowy December afternoons, filling our kitchen with.
To make Winter Wonderland Chocolate Chip Christmas Cookies, set aside from start to finish. Each batch costs about $9 and yields 24 cookies bursting with festive flavor. Store them for at room temperature or freeze for up to . You’ll love the easy prep, budget-friendly ingredients, and the perfect blend of crisp edges and gooey centers. These cookies are ideal for parties, potlucks, or gifting, and their holiday sprinkles make every batch a celebration.
Why This Version Stands Out
Unlike generic chocolate chip cookies, this recipe uses a 1:1 sugar ratio and both white and dark chocolate chips, creating a layered flavor and chewy texture. Creaming the butter and sugars for 3–4 minutes transforms the crumb, while festive sprinkles add visual delight and crunch, making these cookies truly special.
Key Takeaways
- ⏱ Total time is 27 minutes: prep, bake, and optional chill for extra thickness.
- 🍪 Features 12 quality-tested ingredients including double chocolate chips and festive sprinkles for classic holiday flavor and visual appeal.
- 🍫 The cookies deliver a chewy center, crisp edges, and bursts of creamy white and rich dark chocolate, accented by crunchy sprinkles in every bite.
- 👨👩👧 Each batch yields 24 cookies at approximately 55 g each, ideal for parties, gifting, or family gatherings with generous portions.
- 🔄 Easily adaptable: swap in gluten-free flour or vegan chocolate chips for allergy-friendly versions without sacrificing taste or texture.
- 💡 Make ahead: Dough can be chilled for or frozen, and finished cookies store for or frozen.
Why You’ll Love This Winter Wonderland Chocolate Chip Christmas Cookies
- Festive Visual Appeal The vibrant red and green sprinkles combined with creamy white and dark chocolate chips create a visually stunning cookie that instantly brings holiday cheer to your dessert table. Each cookie is a showstopper—perfect for parties, gift boxes, or simply brightening up a winter afternoon.
- Irresistible Texture Each bite offers a satisfying contrast: crisp, golden edges give way to soft, chewy centers, while the chocolate chips melt into gooey pockets of flavor. The careful creaming of butter and sugars ensures a tender crumb that’s never dry or cakey, making these cookies truly memorable.
- Double Chocolate Delight With both white and dark chocolate chips in every batch, the flavor profile is rich and layered—creamy sweetness from the white chocolate, deep cocoa notes from the dark. This combination sets these cookies apart from ordinary chocolate chip recipes, delivering a luxurious taste experience.
- Easy, Reliable Recipe Simple steps and common pantry ingredients mean anyone can bake these cookies, even on a busy holiday schedule. The recipe is forgiving and consistently produces delicious results, whether you’re a seasoned baker or trying it for the first time with family.
- Perfect for Sharing With 24 cookies per batch, these treats are ideal for gatherings, potlucks, and gifting. Their crowd-pleasing flavor and festive appearance make them a universal favorite—guests always ask for seconds and the recipe, ensuring your holiday table is remembered.
- Make-Ahead Convenience Prepare the dough ahead of time and chill or freeze for later; baked cookies stay fresh for days or months if frozen. This flexibility lets you enjoy homemade holiday cookies without last-minute stress, making them a practical choice for busy families and party planners.

Winter Wonderland Chocolate Chip Christmas Cookies
Total Time: 27 minutes
Yield: 24 cookies 1x
Diet: Vegetarian
Description
These Winter Wonderland Chocolate Chip Christmas Cookies are festive, chewy, and packed with both white and dark chocolate chips and colorful holiday sprinkles. Perfect for holiday baking, cookie swaps, or cozy nights in.
Ingredients
Scale
- 1 cup unsalted butter, softened
- 1 cup granulated sugar
- 1 cup brown sugar, packed
- 2 large eggs
- 1 tablespoon vanilla extract
- 3 cups all-purpose flour
- 1 teaspoon baking soda
- 1/2 teaspoon baking powder
- 1/2 teaspoon salt
- 1 cup white chocolate chips
- 1 cup dark chocolate chips
- 1/2 cup holiday sprinkles (red and green)
Instructions
- Preheat oven to 350°F (175°C) and line a baking sheet with parchment paper.
- Cream together butter, granulated sugar, and brown sugar until light and fluffy.
- Add eggs one at a time, beating well after each addition. Stir in vanilla extract.
- In a separate bowl, whisk together flour, baking soda, baking powder, and salt.
- Gradually add the dry mixture to the wet ingredients, mixing until just combined.
- Fold in white chocolate chips, dark chocolate chips, and holiday sprinkles.
- Scoop dough onto baking sheet, spacing 2 inches apart.
- Bake for 10–12 minutes or until edges are golden brown.
- Let cookies cool on baking sheet for a few minutes before transferring to a wire rack.
Notes
- Chill the dough for 30 minutes for thicker cookies.
- Use high-quality chocolate chips for best flavor.
- For dairy-free, use vegan butter and dairy-free chocolate chips.
- For gluten-free, use a 1:1 gluten-free flour blend.
- Freeze cookie dough for up to 3 months.
- Prep Time: 15 minutes
- Cook Time: 12 minutes
- Category: Dessert
- Method: Baking
- Cuisine: American
Nutrition
- Serving Size: 1 cookie
- Calories: 250 kcal
- Sugar: 18 g
- Sodium: 90 mg
- Fat: 12 g
- Saturated Fat: 7 g
- Unsaturated Fat: 4 g
- Trans Fat: 0 g
- Carbohydrates: 30 g
- Fiber: 1 g
- Protein: 3 g
- Cholesterol: 30 mg
if ( ! anchor || ! anchor.classList.contains( 'tasty-recipes-scrollto' ) ) { return; }
const elementHref = anchor.getAttribute( 'href' ); if ( ! elementHref ) { return; }
e.preventDefault(); this.goToSelector( elementHref ); }); }, goToSelector( selector ) { const element = document.querySelector( selector ); if ( ! element ) { return; } element.scrollIntoView( { behavior: 'smooth' } ); } };
document.addEventListener( 'DOMContentLoaded', () => window.TastyRecipes.smoothScroll.init() );
(function(){
var bothEquals = function( d1, d2, D ) {
var ret = 0;
if (d1<=D) {
ret++;
}
if (d2<=D) {
ret++;
}
return ret === 2;
};var frac =function frac(x,D,mixed){var n1=Math.floor(x),d1=1;var n2=n1+1,d2=1;if(x!==n1){while(bothEquals(d1,d2,D)){var m=(n1+n2)/(d1+d2);if(x===m){if(d1+d2<=D){d1+=d2;n1+=n2;d2=D+1}else if(d1>d2){d2=D+1;}else {d1=D+1;}break}else if(x
window.tastyRecipesVulgarFractions = JSON.parse(decodeURIComponent("%7B%22%C2%BC%22%3A%221%2F4%22%2C%22%C2%BD%22%3A%221%2F2%22%2C%22%C2%BE%22%3A%223%2F4%22%2C%22%E2%85%93%22%3A%221%2F3%22%2C%22%E2%85%94%22%3A%222%2F3%22%2C%22%E2%85%95%22%3A%221%2F5%22%2C%22%E2%85%96%22%3A%222%2F5%22%2C%22%E2%85%97%22%3A%223%2F5%22%2C%22%E2%85%98%22%3A%224%2F5%22%2C%22%E2%85%99%22%3A%221%2F6%22%2C%22%E2%85%9A%22%3A%225%2F6%22%2C%22%E2%85%9B%22%3A%221%2F8%22%2C%22%E2%85%9C%22%3A%223%2F8%22%2C%22%E2%85%9D%22%3A%225%2F8%22%2C%22%E2%85%9E%22%3A%227%2F8%22%7D"));
window.tastyRecipesFormatAmount = function(amount, el) { if ( parseFloat( amount ) === parseInt( amount ) ) { return amount; } var roundType = 'frac'; if (typeof el.dataset.amountShouldRound !== 'undefined') { if ('false' !== el.dataset.amountShouldRound) { if ( 'number' === el.dataset.amountShouldRound ) { roundType = 'number'; } else if ('frac' === el.dataset.amountShouldRound) { roundType = 'frac'; } else if ('vulgar' === el.dataset.amountShouldRound) { roundType = 'vulgar'; } else { roundType = 'integer'; } } } if ('number' === roundType) { amount = Number.parseFloat(amount).toPrecision(2); } else if ('integer' === roundType) { amount = Math.round(amount); } else if ('frac' === roundType || 'vulgar' === roundType) { var denom = 8; if (typeof el.dataset.unit !== 'undefined') { var unit = el.dataset.unit; if (['cups','cup','c'].includes(unit)) { denom = 4; if (0.125 === amount) { denom = 8; } if ("0.1667" === Number.parseFloat( amount ).toPrecision(4)) { denom = 6; } } if (['tablespoons','tablespoon','tbsp'].includes(unit)) { denom = 2; } if (['teaspoons','teaspoon','tsp'].includes(unit)) { denom = 8; } } var amountArray = frac.cont( amount, denom, true ); var newAmount = ''; if ( amountArray[1] !== 0 ) { newAmount = amountArray[1] + '/' + amountArray[2]; if ('vulgar' === roundType) { Object.keys(window.tastyRecipesVulgarFractions).forEach(function(vulgar) { if (newAmount === window.tastyRecipesVulgarFractions[vulgar]) { newAmount = vulgar; } }); } } if ( newAmount ) { newAmount = ' ' + newAmount; } if ( amountArray[0] ) { newAmount = amountArray[0] + newAmount; } amount = newAmount; } return amount; };
window.tastyRecipesUpdatePrintLink = () => {
const printButton = document.querySelector( '.tasty-recipes-print-button' );
if ( ! printButton ) { return; }
const printURL = new URL( printButton.href ); const searchParams = new URLSearchParams( printURL.search );
const unitButton = document.querySelector( '.tasty-recipes-convert-button-active' ); const scaleButton = document.querySelector( '.tasty-recipes-scale-button-active' );
let unit = ''; let scale = '';
if ( unitButton ) { unit = unitButton.dataset.unitType; searchParams.delete('unit'); searchParams.set( 'unit', unit ); }
if ( scaleButton ) { scale = scaleButton.dataset.amount; searchParams.set( 'scale', scale ); }
const paramString = searchParams.toString(); const newURL = '' === paramString ? printURL.href : printURL.origin + printURL.pathname + '?' + paramString; const printLinks = document.querySelectorAll( '.tasty-recipes-print-link' );
printLinks.forEach( ( el ) => { el.href = newURL; });
const printButtons = document.querySelectorAll( '.tasty-recipes-print-button' ); printButtons.forEach( ( el ) => { el.href = newURL; }); };
document.addEventListener( 'DOMContentLoaded', () => {
if ( ! window.location.href.includes( '/print/' ) ) { return; }
const searchParams = new URLSearchParams( window.location.search );
const unit = searchParams.get( 'unit' ); const scale = searchParams.get( 'scale' );
if ( unit && ( 'metric' === unit || 'usc' === unit ) ) { document.querySelector( '.tasty-recipes-convert-button[data-unit-type="' + unit + '"]' ).click(); }
if ( scale && Number(scale) > 0 ) { document.querySelector( '.tasty-recipes-scale-button[data-amount="' + Number(scale) + '"]' ).click(); } }); }());
(function(){ var buttonClass = 'tasty-recipes-scale-button', buttonActiveClass = 'tasty-recipes-scale-button-active', buttons = document.querySelectorAll('.tasty-recipes-scale-button'); if ( ! buttons ) { return; }
buttons.forEach(function(button){ button.addEventListener('click', function(event){ event.preventDefault(); var recipe = event.target.closest('.tasty-recipes'); if ( ! recipe ) { return; } var otherButtons = recipe.querySelectorAll('.' + buttonClass); otherButtons.forEach(function(bt){ bt.classList.remove(buttonActiveClass); }); button.classList.add(buttonActiveClass);
var scalables = recipe.querySelectorAll('span[data-amount]'); var buttonAmount = parseFloat( button.dataset.amount ); scalables.forEach(function(scalable){ if (typeof scalable.dataset.amountOriginalType === 'undefined' && typeof scalable.dataset.nfOriginal === 'undefined') { if (-1 !== scalable.innerText.indexOf('/')) { scalable.dataset.amountOriginalType = 'frac'; } if (-1 !== scalable.innerText.indexOf('.')) { scalable.dataset.amountOriginalType = 'number'; } Object.keys(window.tastyRecipesVulgarFractions).forEach(function(vulgar) { if (-1 !== scalable.innerText.indexOf(vulgar)) { scalable.dataset.amountOriginalType = 'vulgar'; } }); if (typeof scalable.dataset.amountOriginalType !== 'undefined') { scalable.dataset.amountShouldRound = scalable.dataset.amountOriginalType; } } var amount = parseFloat( scalable.dataset.amount ) * buttonAmount; amount = window.tastyRecipesFormatAmount(amount, scalable); if ( typeof scalable.dataset.unit !== 'undefined' ) { if ( ! scalable.classList.contains('nutrifox-quantity') ) { if ( ! scalable.classList.contains('nutrifox-second-quantity') ) { amount += ' ' + scalable.dataset.unit; } } } scalable.innerText = amount; });
var nonNumerics = recipe.querySelectorAll('[data-has-non-numeric-amount]'); nonNumerics.forEach(function(nonNumeric){ var indicator = nonNumeric.querySelector('span[data-non-numeric-label]'); if ( indicator ) { nonNumeric.removeChild(indicator); } if ( 1 !== buttonAmount ) { indicator = document.createElement('span'); indicator.setAttribute('data-non-numeric-label', true); var text = document.createTextNode(' (x' + buttonAmount + ')'); indicator.appendChild(text); nonNumeric.appendChild(indicator); } });
window.tastyRecipesUpdatePrintLink(); }); }); }());
(function(){ document.querySelectorAll('[data-tr-ingredient-checkbox]').forEach(function(el) { var input = el.querySelector('.tr-ingredient-checkbox-container input[type="checkbox"]'); if ( ! input ) { return; } if (input.checked) { el.dataset.trIngredientCheckbox = 'checked'; } el.addEventListener('click', function(event) { if ( 'A' === event.target.nodeName || 'INPUT' === event.target.nodeName || 'LABEL' === event.target.nodeName ) { return; } input.click(); }); input.addEventListener('change', function() { el.dataset.trIngredientCheckbox = input.checked ? 'checked' : ''; }); }); }());
window.TastyRecipes = window.TastyRecipes || {};
window.TastyRecipes.staticTooltip = { element: null, tooltipElement: null, deleting: false, init( element ) { if ( this.deleting ) { return; } this.element = element; this.buildElements(); }, destroy() { if ( ! this.tooltipElement || this.deleting ) { return; }
this.deleting = true; this.tooltipElement.classList.remove( 'opened' );
setTimeout( () => { this.tooltipElement.remove(); this.deleting = false; }, 500 ); }, buildElements() { const tooltipElement = document.createElement( 'div' ); tooltipElement.classList.add( 'tasty-recipes-static-tooltip'); tooltipElement.setAttribute( 'id', 'tasty-recipes-tooltip' );
const currentTooltipElement = document.getElementById( 'tasty-recipes-tooltip' ); if ( currentTooltipElement ) { document.body.replaceChild( tooltipElement, currentTooltipElement ); } else { document.body.appendChild( tooltipElement ); }
this.tooltipElement = document.getElementById( 'tasty-recipes-tooltip' ); }, show() { if ( ! this.tooltipElement ) { return; }
const tooltipTop = this.element.getBoundingClientRect().top + window.scrollY - 10 // 10px offset. - this.tooltipElement.getBoundingClientRect().height; const tooltipLeft = this.element.getBoundingClientRect().left - ( this.tooltipElement.getBoundingClientRect().width / 2 ) + ( this.element.getBoundingClientRect().width / 2 ) - 1; const posLeft = Math.max( 10, tooltipLeft ); this.maybeRemoveTail( posLeft !== tooltipLeft );
this.tooltipElement.setAttribute( 'style', 'top:' + tooltipTop + 'px;left:' + posLeft + 'px;' ); this.tooltipElement.classList.add( 'opened' );
}, maybeRemoveTail( removeTail ) { if ( removeTail ) { this.tooltipElement.classList.add( 'tr-hide-tail' ); } else { this.tooltipElement.classList.remove( 'tr-hide-tail' ); } }, changeMessage( message ) { if ( ! this.tooltipElement ) { return; } this.tooltipElement.innerHTML = message; } };
window.TastyRecipes.ajax = { sendPostRequest( url, data, success, failure ) { const xhr = new XMLHttpRequest(); xhr.open( 'POST', url, true ); xhr.send( this.preparePostData( data ) );
xhr.onreadystatechange = () => { if ( 4 !== xhr.readyState ) { return; } if ( xhr.status === 200 ) { success( JSON.parse( xhr.responseText ) ); return; }
failure( xhr ); };
xhr.onerror = () => { failure( xhr ); }; }, preparePostData( data ) { const formData = new FormData();
for ( const key in data ) { formData.append( key, data[key] ); } return formData; }, };
window.TastyRecipes.ratings = { defaultRating: 0, currentRatingPercentage: 100, savingRating: false, init( minRating ) { this.minRating = minRating;
this.formWatchRating(); this.closeTooltipWhenClickOutside(); this.addBodyClassBasedOnSelectedRating(); this.backwardCompFormRatingPosition(); }, formWatchRating() { const ratings = document.querySelectorAll('.tasty-recipes-no-ratings-buttons [data-rating]'); if ( ratings.length <= 0 ) { return; } for ( const rating of ratings ) { rating.addEventListener( 'click', event => { event.preventDefault(); this.defaultRating = event.target.closest( '.checked' ).dataset.rating; this.setCheckedStar( event.target ); this.maybeSendRating( this.defaultRating, event.target ); this.setRatingInForm( this.defaultRating ); } ); } }, closeTooltipWhenClickOutside() { window.addEventListener( 'click', e => { // Bailout (don't remove the tooltip) when the clicked element is a rating star, or it's the tooltip itself. if ( e.target.closest( '.tasty-recipes-rating' ) || e.target.classList.contains( 'tasty-recipes-static-tooltip' ) ) { return; }
window.TastyRecipes.staticTooltip.destroy(); } ); }, setRatingInForm( rating ) { const ratingInput = document.querySelector( '#respond .tasty-recipes-rating[value="' + rating + '"]' ); if ( ! ratingInput ) { return; } ratingInput.click(); }, addBodyClassBasedOnSelectedRating() { const ratingInputs = document.querySelectorAll( 'input.tasty-recipes-rating' ); if ( ! ratingInputs ) { return; } for ( const ratingInput of ratingInputs ) { ratingInput.addEventListener( 'click', currentEvent => { const selectedRating = currentEvent.target.getAttribute( 'value' ); this.handleBodyClassByRating( selectedRating ); this.toggleCommentTextareaRequired( selectedRating ); } ); } }, handleBodyClassByRating( rating ) { if ( rating < this.minRating ) { document.body.classList.remove( 'tasty-recipes-selected-minimum-rating' ); return; } document.body.classList.add( 'tasty-recipes-selected-minimum-rating' ); }, toggleCommentTextareaRequired( rating ) { const commentTextarea = document.getElementById( 'comment' ); if ( ! commentTextarea ) { return; }if ( rating < this.minRating ) { commentTextarea.setAttribute( 'required', '' ); return; }commentTextarea.removeAttribute( 'required' ); }, maybeSendRating( rating, element ) { if ( this.savingRating === rating ) { return; }this.savingRating = rating; window.TastyRecipes.staticTooltip.init( element );const recipeCardElement = element.closest( '.tasty-recipes' ); if ( ! recipeCardElement ) { window.TastyRecipes.staticTooltip.destroy(); return; }window.TastyRecipes.ajax.sendPostRequest( window.trCommon.ajaxurl, { action: 'tasty_recipes_save_rating', rating, nonce: window.trCommon.ratingNonce, post_id: window.trCommon.postId, recipe_id: recipeCardElement.dataset.trId, }, ( response ) => { window.TastyRecipes.staticTooltip.changeMessage( response.data.message ); window.TastyRecipes.staticTooltip.show(); this.updateAverageText( response.data, recipeCardElement ); this.maybeFillCommentForm( response.data );
// Hide the tooltip after 5 seconds. setTimeout( () => { this.maybeResetTooltip( recipeCardElement, response.data, rating ); }, 5000 ); }, () => { this.resetTooltip( recipeCardElement ); } ); }, updateAverageText( data, recipeCardElement ) { if ( ! data.average ) { return; } this.setRatingPercent( data );
if ( ! data.count ) { return; }
const quickLink = document.querySelector( '.tasty-recipes-rating-link' ); if ( quickLink ) { this.setTextInContainer( quickLink, data ); this.setPartialStar( quickLink ); }
const cardStars = recipeCardElement.querySelector( '.tasty-recipes-ratings-buttons' ); cardStars.dataset.trDefaultRating = data.average; this.setTextInContainer( recipeCardElement.querySelector( '.tasty-recipes-rating' ), data ); }, setTextInContainer( container, data ) { if ( ! container ) { return; }
if ( data.label ) { const ratingLabelElement = container.querySelector( '.rating-label' ); if ( ratingLabelElement ) { ratingLabelElement.innerHTML = data.label; } return; }
const averageElement = container.querySelector( '.average' ); if ( averageElement ) { averageElement.textContent = data.average; }
const countElement = container.querySelector( '.count' ); if ( countElement ) { countElement.textContent = data.count; } }, setPartialStar( container ) { const highestStar = container.querySelector( '[data-rating="' + Math.ceil( this.defaultRating ) + '"]' ); if ( highestStar ) { highestStar.dataset.trClip = this.currentRatingPercentage; } }, setRatingPercent( data ) { this.defaultRating = data.average.toFixed( 1 ); const parts = data.average.toFixed( 2 ).toString().split( '.' ); this.currentRatingPercentage = parts[1] ? parts[1] : 100; if ( this.currentRatingPercentage === '00' ) { this.currentRatingPercentage = 100; } }, setCheckedStar( target ) { const cardRatingContainer = target.closest( '.tasty-recipes-ratings-buttons' ); const selectedRatingElement = cardRatingContainer.querySelector( '[data-tr-checked]' ); if ( selectedRatingElement ) { delete selectedRatingElement.dataset.trChecked; }
const thisStar = target.closest( '.tasty-recipes-rating' ); thisStar.dataset.trChecked = 1; thisStar.querySelector( '[data-tr-clip]' ).dataset.trClip = 100; }, maybeFillCommentForm( data ) { if ( ! data.comment || ! data.comment.content ) { return; }
const commentForm = document.querySelector( '#commentform' ); if ( ! commentForm ) { return; }
const commentBox = commentForm.querySelector( '[name=comment]' ); if ( ! commentBox || commentBox.value ) { return; }
// Add comment details for editing. commentBox.innerHTML = data.comment.content; if ( data.comment.name ) { commentForm.querySelector( '[name=author]' ).value = data.comment.name; commentForm.querySelector( '[name=email]' ).value = data.comment.email; } }, maybeResetTooltip( recipeCardElement, data, rating ) { if ( this.savingRating === rating ) { this.resetTooltip( recipeCardElement, data ); } }, resetTooltip( recipeCardElement, data ) { window.TastyRecipes.staticTooltip.destroy(); this.savingRating = false;
// Reset the default rating. const cardRatingContainer = recipeCardElement.querySelector( '.tasty-recipes-ratings-buttons' ); if ( cardRatingContainer ) { this.defaultRating = ( data && data.average ) ? data.average.toFixed(1) : cardRatingContainer.dataset.trDefaultRating; cardRatingContainer.dataset.trDefaultRating = this.defaultRating;
this.resetSelectedStar( cardRatingContainer, data ); } }, resetSelectedStar( cardRatingContainer ) { const selectedRatingElement = cardRatingContainer.querySelector( '[data-rating="' + Math.ceil( this.defaultRating ) + '"]' ); if ( selectedRatingElement ) { selectedRatingElement.querySelector( '[data-tr-clip]' ).dataset.trClip = this.currentRatingPercentage; selectedRatingElement.parentNode.dataset.trChecked = 1; }
const previousSelectedElement= cardRatingContainer.querySelector( '[data-tr-checked]' ); if ( previousSelectedElement ) { const currentSelectedRating = previousSelectedElement.querySelector('[data-rating]'); if ( currentSelectedRating !== selectedRatingElement ) { delete previousSelectedElement.dataset.trChecked; } } }, backwardCompFormRatingPosition() { const ratingsButtons = document.querySelector( '#respond .tasty-recipes-ratings-buttons, #tasty-recipes-comment-rating .tasty-recipes-ratings-buttons' ); if ( ! ratingsButtons ) { return; } const ratingsButtonsStyles = window.getComputedStyle(ratingsButtons); if ( ! ratingsButtonsStyles.display.includes( 'flex' ) ) { ratingsButtons.style.direction = 'rtl'; }
if ( typeof tastyRecipesRating !== 'undefined' ) { // Select the rating that was previously selected in admin. ratingsButtons.querySelector( '.tasty-recipes-rating[value="' + tastyRecipesRating + '"]' ).checked = true; }
const ratingSpans = ratingsButtons.querySelectorAll( '.tasty-recipes-rating' ); for (const ratingSpan of ratingSpans) { ratingSpan.addEventListener( 'click', event => { if ( ratingSpan === event.target ) { return; } ratingSpan.previousElementSibling.click(); } ); } } };
(function(callback) { if (document.readyState !== "loading") { callback(); } else { window.addEventListener( 'load', callback ); } })(() => { window.TastyRecipes.ratings.init( window.trCommon ? window.trCommon.minRating : 4 ); });










