• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

Family Table Ideas

  • Home
  • Recipe Index
  • Budget
  • Cheat Meal
  • Healthy
  • Keto
  • Quick
  • Vegan
  • About
  • Contact

Family Table Ideas

  • Home
  • Recipe Index
  • Budget
  • Cheat Meal
  • Healthy
  • Keto
  • Quick
  • Vegan
  • About
  • Contact
Vegan / Dessert / Apple Cinnamon Greek Yogurt Muffins: 5 Guilt-Free Delights

Apple Cinnamon Greek Yogurt Muffins: 5 Guilt-Free Delights

April 23, 2026 by JenniferHayes

Jump to Recipe·Print Recipe

If you’re looking for a delightful way to start your day, these Apple Cinnamon Greek Yogurt Muffins: 5 Guilt-Free Delights are just the ticket! They’re perfect for busy mornings, family gatherings, or even as an afternoon snack. What I adore about this recipe is how simple yet satisfying it is. The combination of fresh apples and warm cinnamon creates a cozy flavor that will remind you of fall, no matter the season.

Apple Cinnamon Greek Yogurt Muffins: 5 Guilt-Free Delights image 2

These muffins are not only delicious but also guilt-free, thanks to the Greek yogurt that adds moisture without all the extra calories. Whether you’re serving them at brunch or enjoying one with your coffee, they make every moment feel special!

Apple Cinnamon Greek Yogurt Muffins: 5 Guilt-Free Delights image 3
Apple Cinnamon Greek Yogurt Muffins: 5 Guilt-Free Delights image 4

Why You’ll Love This Recipe

  • Easy to make: With straightforward steps and minimal prep time, you’ll have these muffins ready in no time!
  • Family-friendly: Kids love them! The sweet apple and cinnamon flavors are a hit with everyone.
  • Make-ahead convenience: Bake a batch on the weekend, and you’ll have healthy breakfasts sorted for the week.
  • Wholesome ingredients: Packed with oats and Greek yogurt, these muffins offer a nutritious boost to your morning routine.
  • Versatile treats: Enjoy them as breakfast or a snack—perfect for any occasion!

Ingredients You’ll Need

These muffins use simple, wholesome ingredients that you probably already have in your pantry! Let’s gather what you need:

Dry Ingredients

  • 1 cup all-purpose flour
  • 1 cup rolled oats
  • 1 teaspoon baking powder
  • 1 teaspoon baking soda
  • 1 teaspoon cinnamon
  • 1/2 teaspoon salt

Wet Ingredients

  • 1/2 cup Greek yogurt
  • 1/2 cup sugar
  • 1/2 cup apple sauce
  • 1 large egg

Add-ins

  • 1 cup diced apples

Variations

This recipe is wonderfully flexible! Here are some fun variations to try:

  • Add nuts: Toss in some chopped walnuts or pecans for a delightful crunch.
  • Make it vegan: Substitute the egg with a flax egg and use dairy-free yogurt.
  • Spice it up: Mix in some nutmeg or ginger for an extra flavor kick.
  • Fruit fusion: Swap out apples for pears or berries for a different fruity twist.

How to Make Apple Cinnamon Greek Yogurt Muffins: 5 Guilt-Free Delights

Step 1: Preheat the Oven

First things first—preheat your oven to 350°F (175°C). This ensures that your muffins bake evenly and rise beautifully.

Step 2: Mix Dry Ingredients

In a bowl, combine the all-purpose flour, rolled oats, baking powder, baking soda, cinnamon, and salt. This step is important as it helps distribute the leavening agents evenly throughout your batter.

Step 3: Combine Wet Ingredients

In another bowl, whisk together the Greek yogurt, sugar, apple sauce, and egg. Mixing these wet ingredients well is crucial; it creates a smooth batter that keeps your muffins light and fluffy.

Step 4: Combine Wet and Dry Mixtures

Gently fold the dry ingredients into the wet mixture until just combined. Be careful not to overmix; this keeps your muffins tender instead of tough.

Step 5: Add Diced Apples

Now comes the fun part—fold in those diced apples! They will add sweetness and texture to each bite.

Step 6: Pour into Muffin Tins

Spoon the batter into muffin tins lined with paper liners or greased lightly. Filling them about two-thirds full allows room for rising while keeping them perfectly shaped.

Step 7: Bake Until Golden

Place in the oven and bake for 20-25 minutes. You’ll know they’re done when they turn golden brown on top and a toothpick inserted comes out clean.

Step 8: Cool Before Serving

Let them cool for a few minutes before transferring to a wire rack. Enjoy these warm or at room temperature—they’re sure to be gone in no time!

Pro Tips for Making Apple Cinnamon Greek Yogurt Muffins: 5 Guilt-Free Delights

Making these muffins is a breeze, and with a few helpful tips, you can ensure they turn out perfectly every time!

  • Use fresh apples: Freshly diced apples add moisture and flavor to your muffins. Opt for a mix of tart and sweet varieties for a delightful balance.

  • Don’t overmix the batter: Gently fold the wet and dry ingredients together. Overmixing can result in dense muffins, while gentle mixing keeps them light and fluffy.

  • Let the batter rest: Allowing the batter to rest for about 10 minutes before baking can enhance the texture. This gives the oats time to absorb moisture, resulting in a tender crumb.

  • Check for doneness: Ovens can vary in temperature, so start checking your muffins a few minutes early. Insert a toothpick into the center; if it comes out clean or with just a few crumbs, they’re ready!

  • Store properly: To keep your muffins fresh, let them cool completely before storing them in an airtight container at room temperature. They’ll stay delicious for up to three days!

How to Serve Apple Cinnamon Greek Yogurt Muffins: 5 Guilt-Free Delights

These Apple Cinnamon Greek Yogurt Muffins are not only tasty but also versatile when it comes to serving them. Here are some delightful ways to present and enjoy your muffins.

Garnishes

  • A sprinkle of cinnamon sugar: A light dusting of cinnamon sugar on top adds an extra touch of sweetness and enhances the apple-cinnamon flavor profile.
  • A dollop of Greek yogurt: Serve each muffin with a spoonful of Greek yogurt on the side for added creaminess and protein.

Side Dishes

  • Fresh fruit salad: A colorful mix of seasonal fruits complements the muffins perfectly while adding freshness and vibrancy to your meal.
  • Nut butter spread: A small dish of almond or peanut butter provides a satisfying protein boost and pairs beautifully with the sweet flavors of the muffins.
  • Chia seed pudding: For those looking for something more filling, serve chia seed pudding on the side; its creamy texture contrasts nicely with the muffin’s fluffy crumb.
  • Herbal tea or coffee: Pair your muffins with a warm cup of herbal tea or coffee to create a cozy breakfast or snack experience that everyone will love!

Make Ahead and Storage

These Apple Cinnamon Greek Yogurt Muffins are perfect for meal prep, making it easy to enjoy a delicious breakfast or snack throughout the week!

Storing Leftovers

  • Allow the muffins to cool completely before storing.
  • Place them in an airtight container at room temperature for up to 3 days.
  • For longer freshness, store in the refrigerator for up to a week.

Freezing

  • Wrap each muffin individually in plastic wrap or aluminum foil.
  • Place wrapped muffins in a freezer-safe bag or container.
  • They can be frozen for up to 3 months.

Reheating

  • For best results, thaw muffins overnight in the refrigerator before reheating.
  • Microwave on a low setting for about 20-30 seconds until warm.
  • Alternatively, reheat in a preheated oven at 350°F (175°C) for about 10 minutes.

FAQs

Can I make Apple Cinnamon Greek Yogurt Muffins ahead of time?

Yes! These muffins can be made ahead of time and stored in an airtight container. They are great for meal prep and will keep well for several days.

How should I store Apple Cinnamon Greek Yogurt Muffins?

Store your muffins at room temperature in an airtight container for up to 3 days, or refrigerate them for up to a week. You can also freeze them to enjoy later!

Can I use different fruits in these muffins?

Absolutely! While this recipe highlights apples, you can substitute with other fruits like bananas or berries based on your preference.

Are these muffins suitable for kids?

Yes! With their wholesome ingredients and delicious taste, these Apple Cinnamon Greek Yogurt Muffins make a great snack or breakfast option for kids.

Final Thoughts

I hope you enjoy making these delightful Apple Cinnamon Greek Yogurt Muffins as much as I do! They’re not only delicious but also guilt-free, making them a wonderful addition to your breakfast routine. Gather your ingredients and treat yourself to some homemade goodness that the whole family will love!

Print

Apple Cinnamon Greek Yogurt Muffins: 5 Guilt-Free Delights

Print Recipe

5 Stars 4 Stars 3 Stars 2 Stars 1 Star

No reviews

Apple Cinnamon Greek Yogurt Muffins: 5 Guilt-Free Delights are the perfect solution for busy mornings or a wholesome snack any time of day. These muffins are not only easy to make but also packed with flavor, featuring the comforting combination of fresh apples and warm cinnamon. The inclusion of Greek yogurt keeps them moist while reducing calories, making them a guilt-free indulgence. Whether you enjoy them fresh from the oven or as part of your meal prep for the week, these delightful treats will add a touch of sweetness to your day.

  • Author: JenniferHayes
  • Prep Time: 10 minutes
  • Cook Time: 25 minutes
  • Total Time: 35 minutes
  • Yield: Approximately 12 muffins 1x
  • Category: Snack
  • Method: Baking
  • Cuisine: American

Ingredients


Scale

  • 1 cup all-purpose flour
  • 1 cup rolled oats
  • 1 teaspoon baking powder
  • 1 teaspoon baking soda
  • 1 teaspoon cinnamon
  • 1/2 teaspoon salt
  • 1/2 cup Greek yogurt
  • 1/2 cup sugar
  • 1/2 cup apple sauce
  • 1 cup diced apples
  • 1 large egg

Instructions

  1. Preheat your oven to 350°F (175°C).
  2. In one bowl, mix all-purpose flour, rolled oats, baking powder, baking soda, cinnamon, and salt.
  3. In another bowl, whisk together Greek yogurt, sugar, apple sauce, and egg until smooth.
  4. Combine the dry ingredients with the wet ingredients gently until just mixed.
  5. Fold in the diced apples.
  6. Spoon the batter into muffin tins lined with paper liners or lightly greased.
  7. Bake for 20-25 minutes until golden brown and a toothpick comes out clean.
  8. Let cool before serving.

Nutrition

  • Serving Size: 1 muffin (60g)
  • Calories: 150
  • Sugar: 8g
  • Sodium: 110mg
  • Fat: 3g
  • Saturated Fat: 0.5g
  • Unsaturated Fat: 2g
  • Trans Fat: 0g
  • Carbohydrates: 27g
  • Fiber: 2g
  • Protein: 4g
  • Cholesterol: 30mg

Did you make this recipe?

Share a photo and tag us — we can’t wait to see what you’ve made!

window.trCommon={“minRating”:6,”ajaxurl”:”https:\/\/www.familytableideas.com\/wp-admin\/admin-ajax.php”,”ratingNonce”:”9923128fe7″,”postId”:2018};
window.TastyRecipes = window.TastyRecipes || {};

window.TastyRecipes.smoothScroll = {
init() {
document.addEventListener( ‘click’, ( e ) => {
let anchor = e.target;
if ( anchor.tagName !== ‘A’ ) {
anchor = anchor.closest( ‘a.tasty-recipes-scrollto’ );
}

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+d2d2){d2=D+1;}else {d1=D+1;}break}else if(xD){d1=d2;n1=n2}if(!mixed){return[0,n1,d1];}var q=Math.floor(n1/d1);return[q,n1-q*d1,d1]};frac.cont=function cont(x,D,mixed){var sgn=x<0?-1:1;var B=x*sgn;var P_2=0,P_1=1,P=0;var Q_2=1,Q_1=0,Q=0;var A=Math.floor(B);while(Q_1<D){A=Math.floor(B);P=A*P_1+P_2;Q=A*Q_1+Q_2;if(B-AD){if(Q_1>D){Q=Q_2;P=P_2}else{Q=Q_1;P=P_1}}if(!mixed){return[0,sgn*P,Q];}var q=Math.floor(sgn*P/Q);return[q,sgn*P-q*Q,Q]};

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();
});
});
}());

window.TastyRecipes = window.TastyRecipes || {};
window.TastyRecipes.cookMode = {
wakeLockApi: false,
wakeLock: false,
cookModeSelector: ‘.tasty-recipes-cook-mode’,
init() {
if (“wakeLock” in navigator && “request” in navigator.wakeLock) {
this.wakeLockApi = navigator.wakeLock;
}

const cookModes = document.querySelectorAll(this.cookModeSelector);

if (cookModes.length > 0) {
for (const cookMode of cookModes) {
if (this.wakeLockApi) {
cookMode.querySelector(‘input[type=”checkbox”]’).addEventListener(“change”, event => {
this.checkboxChange(event.target);
}, false);
} else {
cookMode.style.display = “none”;
}
}
}
},
checkboxChange(checkbox) {
if (checkbox.checked) {
this.lock();
} else {
this.unlock();
}
},
setCheckboxesState(state) {
const checkboxes = document.querySelectorAll(this.cookModeSelector + ‘ input[type=”checkbox”]’);
for (const checkbox of checkboxes) {
checkbox.checked = state;
}
},
async lock() {
try {
this.wakeLock = await this.wakeLockApi.request(“screen”);
this.wakeLock.addEventListener(“release”, () => {
this.wakeLock = false;
this.setCheckboxesState(false);
});
this.setCheckboxesState(true);
} catch (error) {
this.setCheckboxesState(false);
}
},
unlock() {
if (this.wakeLock) {
this.wakeLock.release();
this.wakeLock = false;
}
this.setCheckboxesState(false);
}
};

(function(callback) {
if (document.readyState !== “loading”) {
callback();
} else {
document.addEventListener(“DOMContentLoaded”, callback);
}
})(() => {
window.TastyRecipes.cookMode.init();
});

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 {
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 {
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 );
});

« Previous Post
Delicious Street Corn Chicken Rice Bowl Recipe
Next Post »
Crème Brûlée French Toast

If you enjoyed this…

No-Bake Chocolate Oatmeal Cookies

No-Bake Chocolate Oatmeal Cookies

Feta & Cranberry Chickpeas with Lemon Vinaigrette

Feta & Cranberry Chickpeas with Lemon Vinaigrette

Vegan Cardamom Rose Cupcakes

Vegan Cardamom Rose Cupcakes

Reader Interactions

Leave a Comment Cancel reply

Helpful comments include feedback on the post or changes you made.

Recipe rating 5 Stars 4 Stars 3 Stars 2 Stars 1 Star

Primary Sidebar

Browse by Diet

HealthyBudgetKetoQuickVeganCheat Meal
  • About
  • Contact
  • Disclaimer
  • Homepage
  • Privacy Policy
  • Recipe Index
  • Terms and Conditions

© 2026 Family Table Ideas · All Rights Reserved · Created with heart by Jennifer Hayes · About · Privacy Policy · Terms & Conditions · Disclaimer · Affiliate Disclosure · Contact

Powered by
►
Necessary cookies enable essential site features like secure log-ins and consent preference adjustments. They do not store personal data.
None
►
Functional cookies support features like content sharing on social media, collecting feedback, and enabling third-party tools.
None
►
Analytical cookies track visitor interactions, providing insights on metrics like visitor count, bounce rate, and traffic sources.
None
►
Advertisement cookies deliver personalized ads based on your previous visits and analyze the effectiveness of ad campaigns.
None
►
Unclassified cookies are cookies that we are in the process of classifying, together with the providers of individual cookies.
None
Powered by