{"id":130918,"date":"2025-09-30T10:41:20","date_gmt":"2025-09-30T10:41:20","guid":{"rendered":"https:\/\/bestratefinders.com\/blog\/?p=130918"},"modified":"2025-10-06T11:58:57","modified_gmt":"2025-10-06T11:58:57","slug":"slow-cooker-turkey-barbacoa","status":"publish","type":"post","link":"https:\/\/bestratefinders.com\/blog\/everything-else\/slow-cooker-turkey-barbacoa\/","title":{"rendered":"Slow cooker turkey barbacoa"},"content":{"rendered":"<p><em>Sharing this amazing slow cooker recipe from my friend Arsy!<\/em><\/p>\n<p>Today, I&#8217;m so excited I get to share a recipe from a new ebook,\u00a0<a href=\"https:\/\/transactions.sendowl.com\/stores\/6189\/33486\" data-wpel-link=\"external\">Real Food Slow Cooker Recipes<\/a>, written by my foodie blogger friend, Arsy Vartanian from\u00a0<a href=\"http:\/\/www.rubiesandradishes.com\" data-wpel-link=\"external\">Rubies &amp; Radishes<\/a>. Arsy and I first met through the\u00a0<a href=\"http:\/\/www.beautycounter.com\/ginaharney\" data-wpel-link=\"external\">Beautycounter<\/a>\u00a0world, and have become friends this past year. I love keeping up with everything she\u2019s up to, and was so excited to hear about her new ebook. You really can\u2019t beat a nutritious, delicious meal that only requires minimal prep. A few minutes chopping, saut\u00e9ing, or blending, throw it in a slow cooker and get on with your day \u2013 dinner\u2019s ready when you are!<\/p>\n<p><a href=\"https:\/\/fitnessista.com\/slow-cooker-turkey-barbacoa\/real-food-slow-cooker-recipes-cover\/\" target=\"_blank\" rel=\"attachment noopener wp-att-97691 follow noreferrer\" data-wpel-link=\"internal\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-97691\" title=\"Real Food Slow Cooker Recipes by Arsy Vartanian\" src=\"https:\/\/bestratefinders.com\/blog\/wp-content\/uploads\/2025\/09\/real-food-slow-cooker-recipes-cover-791x1024-1.jpg\" data-fslightbox=\"gallery1\"><\/a><\/p>\n<p>Not only are all of Arsy\u2019s dishes delicious, but each of the 70+ recipes included in\u00a0<a href=\"https:\/\/transactions.sendowl.com\/stores\/6189\/33486\" data-wpel-link=\"external\">the ebook<\/a> use strictly Paleo ingredients &#8212; no grains, dairy, sugar, natural sweeteners, legumes or alcohol. Just nutrient-dense flavor \u00a0and\u00a0lean turkey protein in every comforting bite. I\u2019ve mentioned before that I\u2019ve really cleaned up my eating, no needless to say, all of these recipes are speaking my language.<\/p>\n<p>There\u2019s such a great variety of recipes in\u00a0<a href=\"https:\/\/transactions.sendowl.com\/stores\/6189\/33486\" data-wpel-link=\"external\">Real Food Slow Cooker Recipes<\/a> \u2013 it\u2019ll work for whatever you happen to have in your refrigerator. The recipe I\u2019m sharing with you today is one that really popped out to me: Turkey Barbacoa. This easy recipe takes just a few minutes to throw together before it hits the slow cooker. Plus, it includes some of my favorite savory ingredients like onions, salt, cumin, turkey drumsticks or thighs, and tomatoes. Before you know it, the kitchen will be filled with the\u00a0amazing smell\u00a0of this\u00a0nutritious protein option.<\/p>\n<p><a href=\"https:\/\/fitnessista.com\/slow-cooker-turkey-barbacoa\/turkey-barbacoa\/\" target=\"_blank\" rel=\"attachment noopener wp-att-97690 follow noreferrer\" data-wpel-link=\"internal\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-97690\" title=\"Turkey Barbacoa\" src=\"https:\/\/bestratefinders.com\/blog\/wp-content\/uploads\/2025\/09\/Turkey-Barbacoa-683x1024-1.jpg\" data-fslightbox=\"gallery1\"><\/a><\/p>\n<p><svg aria-hidden=\"true\" style=\"position: absolute;width: 0;height: 0;overflow: hidden\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<defs>\n<symbol viewbox=\"9 9 46 42\" id=\"wpt-star-full\">\n\t<path d=\"m46.3 52-14.4-9.5-14.4 9.4L22 35.3 8.7 24.5l17.1-.9 6.2-16 6 16 17.2 1-13.4 10.7z\" \/>\n<\/symbol>\n<\/defs>\n<\/svg><br \/>\n<a class=\"button tasty-recipes-print-button tasty-recipes-no-print tasty-recipes-print-above-card\" href=\"https:\/\/fitnessista.com\/slow-cooker-turkey-barbacoa\/print\/111050\/\" data-wpel-link=\"internal\" rel=\"follow noopener noreferrer\">Print<\/a><span class=\"tasty-recipes-jump-target\" id=\"tasty-recipes-111050-jump-target\" style=\"display:block;padding-top:2px;margin-top:-2px;\"><\/span><\/p>\n<div id=\"tasty-recipes-111050\" data-tr-id=\"111050\" class=\"tasty-recipes tasty-recipes-111050 tasty-recipes-display tasty-recipes-has-image\" data-tasty-recipes-customization=\"primary-color.background-color secondary-color.border-color\">\n<h2 class=\"tasty-recipes-title\" data-tasty-recipes-customization=\"h2-color.color h2-transform.text-transform\">Turkey Barbacoa<\/h2>\n<div class=\"tasty-recipes-image-button-container\">\n<div class=\"tasty-recipes-image\">\n\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"300\" src=\"https:\/\/bestratefinders.com\/blog\/wp-content\/uploads\/2025\/09\/Turkey-Barbacoa-683x1024-300x300-1.jpg\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" data-pin-nopin=\"true\" \/>\t\t<\/div>\n<div class=\"tasty-recipes-buttons\">\n<div class=\"tasty-recipes-button-wrap\">\n<p><a class=\"button tasty-recipes-print-button tasty-recipes-no-print\" href=\"https:\/\/fitnessista.com\/slow-cooker-turkey-barbacoa\/print\/111050\/\" target=\"_blank\" data-tasty-recipes-customization=\"\" data-wpel-link=\"internal\" rel=\"follow noopener noreferrer\"><br \/>\n\t\t\t<img decoding=\"async\" class=\"svg-print\" data-pin-nopin=\"true\" src=\"https:\/\/fitnessista.com\/wp-content\/plugins\/tasty-recipes\/templates\/buttons\/images\/icon-print.png\" \/><br \/>\n\t\tPrint Recipe<\/a>\n\t\t<\/div>\n<\/p><\/div>\n<\/div>\n<div class=\"tasty-recipes-rating\" data-tasty-recipes-customization=\"body-color.color\">\n<p><svg aria-hidden=\"true\" style=\"position: absolute;width: 0;height: 0;overflow: hidden\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<defs>\n<symbol viewbox=\"9 9 46 42\" id=\"wpt-star-full\">\n\t<path d=\"m46.3 52-14.4-9.5-14.4 9.4L22 35.3 8.7 24.5l17.1-.9 6.2-16 6 16 17.2 1-13.4 10.7z\" \/>\n<\/symbol>\n<\/defs>\n<\/svg><br \/>\n<span class=\"tasty-recipes-ratings-buttons tasty-recipes-no-ratings-buttons\" data-tr-default-rating=\"0\">\t\t<span class=\"tasty-recipes-rating\">\t\t<i class=\"checked\" data-rating=\"5\">\t\t\t<span class=\"tasty-recipes-rating-solid\" data-tr-clip=\"0\">\t\t\t\t<svg class=\"tasty-recipes-svg\"><use href=\"#wpt-star-full\" \/><\/svg>\t\t\t<\/span>\t\t\t<span class=\"tasty-recipes-screen-reader\">\t\t\t\t5 Stars\t\t\t<\/span>\t\t<\/i>\t<\/span>\t\t<span class=\"tasty-recipes-rating\">\t\t<i class=\"checked\" data-rating=\"4\">\t\t\t<span class=\"tasty-recipes-rating-solid\" data-tr-clip=\"0\">\t\t\t\t<svg class=\"tasty-recipes-svg\"><use href=\"#wpt-star-full\" \/><\/svg>\t\t\t<\/span>\t\t\t<span class=\"tasty-recipes-screen-reader\">\t\t\t\t4 Stars\t\t\t<\/span>\t\t<\/i>\t<\/span>\t\t<span class=\"tasty-recipes-rating\">\t\t<i class=\"checked\" data-rating=\"3\">\t\t\t<span class=\"tasty-recipes-rating-solid\" data-tr-clip=\"0\">\t\t\t\t<svg class=\"tasty-recipes-svg\"><use href=\"#wpt-star-full\" \/><\/svg>\t\t\t<\/span>\t\t\t<span class=\"tasty-recipes-screen-reader\">\t\t\t\t3 Stars\t\t\t<\/span>\t\t<\/i>\t<\/span>\t\t<span class=\"tasty-recipes-rating\">\t\t<i class=\"checked\" data-rating=\"2\">\t\t\t<span class=\"tasty-recipes-rating-solid\" data-tr-clip=\"0\">\t\t\t\t<svg class=\"tasty-recipes-svg\"><use href=\"#wpt-star-full\" \/><\/svg>\t\t\t<\/span>\t\t\t<span class=\"tasty-recipes-screen-reader\">\t\t\t\t2 Stars\t\t\t<\/span>\t\t<\/i>\t<\/span>\t\t<span class=\"tasty-recipes-rating\">\t\t<i class=\"checked\" data-rating=\"1\">\t\t\t<span class=\"tasty-recipes-rating-solid\" data-tr-clip=\"0\">\t\t\t\t<svg class=\"tasty-recipes-svg\"><use href=\"#wpt-star-full\" \/><\/svg>\t\t\t<\/span>\t\t\t<span class=\"tasty-recipes-screen-reader\">\t\t\t\t1 Star\t\t\t<\/span>\t\t<\/i>\t<\/span><\/span><\/p>\n<p><span data-tasty-recipes-customization=\"detail-label-color.color\" class=\"rating-label\">No reviews<\/span><\/p>\n<\/p><\/div>\n<div class=\"tasty-recipes-details\" data-tasty-recipes-customization=\"body-color.color\">\n<ul>\n<li class=\"author\"><strong data-tasty-recipes-customization=\"detail-label-color.color\" class=\"tasty-recipes-label\">Author:<\/strong> <span data-tasty-recipes-customization=\"detail-value-color.color\" class=\"tasty-recipes-author-name\">Arsy Vartanian<\/span><\/li>\n<\/ul><\/div>\n<div class=\"tasty-recipes-ingredients\">\n<div class=\"tasty-recipes-ingredients-header\">\n<div class=\"tasty-recipes-ingredients-clipboard-container\">\n<h3 data-tasty-recipes-customization=\"h3-color.color h3-transform.text-transform\">Ingredients<\/h3>\n<\/p><\/div>\n<div class=\"tasty-recipes-units-scale-container\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n<\/p><\/div>\n<div class=\"tasty-recipes-ingredients-body\" data-tasty-recipes-customization=\"body-color.color\">\n<ul>\n<li><span data-amount=\"2\" data-unit=\"tablespoon\">2 tablespoons<\/span> sesame seeds<\/li>\n<li><span data-amount=\"1\">1<\/span> 18-ounce jar plum tomatoes<\/li>\n<li><span data-amount=\"6\">6<\/span> cloves garlic, minced<\/li>\n<li><span data-amount=\"1\">1<\/span> large onion, chopped<\/li>\n<li><span data-amount=\"1\" data-unit=\"tablespoon\">1 tablespoon<\/span> sea salt<\/li>\n<li><span data-amount=\"1\">1<\/span>?2 cup chicken broth<\/li>\n<li><span data-amount=\"1\" data-unit=\"teaspoon\">1 teaspoon<\/span> cumin<\/li>\n<li><span data-amount=\"6\">6<\/span> ancho chilies, seeds removed OR 4 dried pasilla and 4 guajillo peppers, stem and partial seeds removed<\/li>\n<li><span data-amount=\"4\">4<\/span> turkey drumsticks OR 2 turkey drumsticks and 2 turkey thighs<\/li>\n<\/ul>\n<p><!--INSIDE_INGREDIENTS-->\t\t<\/div>\n<div class=\"tasty-recipes-cook-mode\">\n<div class=\"tasty-recipes-cook-mode__container\">\n\t\t<label class=\"tasty-recipes-cook-mode__switch\"><br \/>\n\t\t\t<input type=\"checkbox\" id=\"tasty_recipes_68e3aef69cf08_cookmode\" \/><br \/>\n\t\t\t<span class=\"tasty-recipes-cook-mode__switch-slider tasty-recipes-cook-mode__switch-round\" data-tasty-recipes-customization=\"button-color.background button-text-color.color\"><\/span><br \/>\n\t\t<\/label><br \/>\n\t\t<label for=\"tasty_recipes_68e3aef69cf08_cookmode\"><br \/>\n\t\t\t<span class=\"tasty-recipes-cook-mode__label\">Cook Mode<\/span><br \/>\n\t\t\t<span class=\"tasty-recipes-cook-mode__helper\"><br \/>\n\t\t\t\tPrevent your screen from going dark\t\t\t<\/span><br \/>\n\t\t<\/label>\n\t<\/div>\n<\/div><\/div>\n<div class=\"tasty-recipe-instructions\">\n<div class=\"tasty-recipes-instructions-header\">\n<h3 data-tasty-recipes-customization=\"h3-color.color h3-transform.text-transform\">Instructions<\/h3>\n<\/p><\/div>\n<div class=\"tasty-recipes-instructions-body\" data-tasty-recipes-customization=\"body-color.color\">\n<ol>\n<li id=\"instruction-step-1\">Toast sesame seeds in a pan over medium heat for 3 to 5 minutes.<\/li>\n<li id=\"instruction-step-2\">Place seeds in a food processor. Heat up pan to medium-high heat and add tomatoes, garlic, onion and salt.<\/li>\n<li id=\"instruction-step-3\">Cook, stirring occasionally for 5 minutes.<\/li>\n<li id=\"instruction-step-4\">Transfer this mix to the food processor. Add the chicken broth and cumin.<\/li>\n<li id=\"instruction-step-5\">After the peppers are seeded, place in food processor and blend until it becomes a sauce.<\/li>\n<li id=\"instruction-step-6\">Place turkey in a slow cooker and pour the sauce over it. Cook on low for 6 hours. Remove turkey from the sauce and place in a separate bowl.<\/li>\n<li id=\"instruction-step-7\">Shred turkey in a separate plate\/bowl and not over the sauce to avoid small bones falling in. Once done, transfer to the sauce and mix. Cook in saucepan to thicken.<\/li>\n<\/ol><\/div>\n<\/p><\/div>\n<div class=\"tasty-recipes-nutrition\">\n<h3 data-tasty-recipes-customization=\"h3-color.color h3-transform.text-transform\">Nutrition<\/h3>\n<ul>\n<li><strong class=\"tasty-recipes-label\" data-tasty-recipes-customization=\"body-color.color\">Serving Size:<\/strong> <span data-tasty-recipes-customization=\"body-color.color\" class=\"tasty-recipes-serving-size\">8<\/span><\/li>\n<\/ul><\/div>\n<footer class=\"tasty-recipes-entry-footer\">\n<h3 data-tasty-recipes-customization=\"footer-heading-color.color h3-transform.text-transform footer-heading.innerText\">Did you make this recipe?<\/h3>\n<div data-tasty-recipes-customization=\"footer-description-color.color footer-description.innerHTML\">\n<p>Tag <a href=\"https:\/\/www.instagram.com\/fitnessista\" target=\"_blank\" rel=\"noreferrer noopener\" data-wpel-link=\"external\">@fitnessista<\/a> on Instagram<\/p>\n<\/div>\n<\/footer>\n<p><script>\nwindow.trCommon={\"minRating\":6,\"ajaxurl\":\"https:\/\/fitnessista.com\/wp-admin\/admin-ajax.php\",\"ratingNonce\":\"\",\"postId\":97689};\nwindow.TastyRecipes = window.TastyRecipes || {};<\/p>\n<p>window.TastyRecipes.smoothScroll = {\ninit() {\ndocument.addEventListener( 'click', ( e ) => {\nlet anchor = e.target;\nif ( anchor.tagName !== 'A' ) {\nanchor = anchor.closest( 'a.tasty-recipes-scrollto' );\n}<\/p>\n<p>if ( ! anchor || ! anchor.classList.contains( 'tasty-recipes-scrollto' ) ) {\nreturn;\n}<\/p>\n<p>const elementHref = anchor.getAttribute( 'href' );\nif ( ! elementHref ) {\nreturn;\n}<\/p>\n<p>e.preventDefault();\nthis.goToSelector( elementHref );\n});\n},\ngoToSelector( selector ) {\nconst element = document.querySelector( selector );\nif ( ! element ) {\nreturn;\n}\nelement.scrollIntoView( { behavior: 'smooth' } );\n}\n};<\/p>\n<p>document.addEventListener(\n'DOMContentLoaded',\n() => window.TastyRecipes.smoothScroll.init()\n);<\/p>\n<p>window.TastyRecipes = window.TastyRecipes || {};\nwindow.TastyRecipes.cookMode = {\nwakeLockApi: false,\nwakeLock: false,\ncookModeSelector: '.tasty-recipes-cook-mode',\ninit() {\nif (\"wakeLock\" in navigator && \"request\" in navigator.wakeLock) {\nthis.wakeLockApi = navigator.wakeLock;\n}<\/p>\n<p>const cookModes = document.querySelectorAll(this.cookModeSelector);<\/p>\n<p>if (cookModes.length > 0) {\nfor (const cookMode of cookModes) {\nif (this.wakeLockApi) {\ncookMode.querySelector('input[type=\"checkbox\"]').addEventListener(\"change\", event => {\nthis.checkboxChange(event.target);\n}, false);\n} else {\ncookMode.style.display = \"none\";\n}\n}\n}\n},\ncheckboxChange(checkbox) {\nif (checkbox.checked) {\nthis.lock();\n} else {\nthis.unlock();\n}\n},\nsetCheckboxesState(state) {\nconst checkboxes = document.querySelectorAll(this.cookModeSelector + ' input[type=\"checkbox\"]');\nfor (const checkbox of checkboxes) {\ncheckbox.checked = state;\n}\n},\nasync lock() {\ntry {\nthis.wakeLock = await this.wakeLockApi.request(\"screen\");\nthis.wakeLock.addEventListener(\"release\", () => {\nthis.wakeLock = false;\nthis.setCheckboxesState(false);\n});\nthis.setCheckboxesState(true);\n} catch (error) {\nthis.setCheckboxesState(false);\n}\n},\nunlock() {\nif (this.wakeLock) {\nthis.wakeLock.release();\nthis.wakeLock = false;\n}\nthis.setCheckboxesState(false);\n}\n};<\/p>\n<p>(function(callback) {\nif (document.readyState !== \"loading\") {\ncallback();\n} else {\ndocument.addEventListener(\"DOMContentLoaded\", callback);\n}\n})(() => {\nwindow.TastyRecipes.cookMode.init();\n});<\/p>\n<p>window.TastyRecipes = window.TastyRecipes || {};<\/p>\n<p>window.TastyRecipes.staticTooltip = {\nelement: null,\ntooltipElement: null,\ndeleting: false,\ninit( element ) {\nif ( this.deleting ) {\nreturn;\n}\nthis.element = element;\nthis.buildElements();\n},\ndestroy() {\nif ( ! this.tooltipElement || this.deleting ) {\nreturn;\n}<\/p>\n<p>this.deleting = true;\nthis.tooltipElement.classList.remove( 'opened' );<\/p>\n<p>setTimeout( () => {\nthis.tooltipElement.remove();\nthis.deleting = false;\n}, 500 );\n},\nbuildElements() {\nconst tooltipElement = document.createElement( 'div' );\ntooltipElement.classList.add( 'tasty-recipes-static-tooltip');\ntooltipElement.setAttribute( 'id', 'tasty-recipes-tooltip' );<\/p>\n<p>const currentTooltipElement = document.getElementById( 'tasty-recipes-tooltip' );\nif ( currentTooltipElement ) {\ndocument.body.replaceChild( tooltipElement, currentTooltipElement );\n} else {\ndocument.body.appendChild( tooltipElement );\n}<\/p>\n<p>this.tooltipElement = document.getElementById( 'tasty-recipes-tooltip' );\n},\nshow() {\nif ( ! this.tooltipElement ) {\nreturn;\n}<\/p>\n<p>const tooltipTop = this.element.getBoundingClientRect().top\n+ window.scrollY\n- 10 \/\/ 10px offset.\n- this.tooltipElement.getBoundingClientRect().height;\nconst tooltipLeft = this.element.getBoundingClientRect().left\n- ( this.tooltipElement.getBoundingClientRect().width \/ 2 )\n+ ( this.element.getBoundingClientRect().width \/ 2 ) - 1;\nconst posLeft = Math.max( 10, tooltipLeft );\nthis.maybeRemoveTail( posLeft !== tooltipLeft );<\/p>\n<p>this.tooltipElement.setAttribute( 'style', 'top:' + tooltipTop + 'px;left:' + posLeft + 'px;' );\nthis.tooltipElement.classList.add( 'opened' );<\/p>\n<p>},\nmaybeRemoveTail( removeTail ) {\nif ( removeTail ) {\nthis.tooltipElement.classList.add( 'tr-hide-tail' );\n} else {\nthis.tooltipElement.classList.remove( 'tr-hide-tail' );\n}\n},\nchangeMessage( message ) {\nif ( ! this.tooltipElement ) {\nreturn;\n}\nthis.tooltipElement.innerHTML = message;\n}\n};<\/p>\n<p>window.TastyRecipes.ajax = {\nsendPostRequest( url, data, success, failure ) {\nconst xhr = new XMLHttpRequest();\nxhr.open( 'POST', url, true );\nxhr.send( this.preparePostData( data ) );<\/p>\n<p>xhr.onreadystatechange = () => {\nif ( 4 !== xhr.readyState ) {\nreturn;\n}\nif ( xhr.status === 200 ) {\nsuccess( JSON.parse( xhr.responseText ) );\nreturn;\n}<\/p>\n<p>failure( xhr );\n};<\/p>\n<p>xhr.onerror = () => {\nfailure( xhr );\n};\n},\npreparePostData( data ) {\nconst formData = new FormData();<\/p>\n<p>for ( const key in data ) {\nformData.append( key, data[key] );\n}\nreturn formData;\n},\n};<\/p>\n<p>window.TastyRecipes.ratings = {\ndefaultRating: 0,\ncurrentRatingPercentage: 100,\nsavingRating: false,\ninit( minRating ) {\nthis.minRating = minRating;<\/p>\n<p>this.formWatchRating();\nthis.closeTooltipWhenClickOutside();\nthis.addBodyClassBasedOnSelectedRating();\nthis.backwardCompFormRatingPosition();\n},\nformWatchRating() {\nconst ratings = document.querySelectorAll('.tasty-recipes-no-ratings-buttons [data-rating]');\nif ( ratings.length <= 0 ) {\nreturn;\n}\nfor ( const rating of ratings ) {\nrating.addEventListener( 'click', event => {\nevent.preventDefault();\nthis.defaultRating = event.target.closest( '.checked' ).dataset.rating;\nthis.setCheckedStar( event.target );\nthis.maybeSendRating( this.defaultRating, event.target );\nthis.setRatingInForm( this.defaultRating );\n} );\n}\n},\ncloseTooltipWhenClickOutside() {\nwindow.addEventListener( 'click', e => {\n\/\/ Bailout (don't remove the tooltip) when the clicked element is a rating star, or it's the tooltip itself.\nif ( e.target.closest( '.tasty-recipes-rating' ) || e.target.classList.contains( 'tasty-recipes-static-tooltip' ) ) {\nreturn;\n}<\/p>\n<p>window.TastyRecipes.staticTooltip.destroy();\n} );\n},\n setRatingInForm( rating ) {\nconst ratingInput = document.querySelector( '#respond .tasty-recipes-rating[value=\"' + rating + '\"]' );\nif ( ! ratingInput ) {\nreturn;\n}\nratingInput.click();\n},\naddBodyClassBasedOnSelectedRating() {\nconst ratingInputs = document.querySelectorAll( 'input.tasty-recipes-rating' );\nif ( ! ratingInputs ) {\nreturn;\n}\nfor ( const ratingInput of ratingInputs ) {\nratingInput.addEventListener( 'click', currentEvent => {\nconst selectedRating = currentEvent.target.getAttribute( 'value' );\nthis.handleBodyClassByRating( selectedRating );\nthis.toggleCommentTextareaRequired( selectedRating );\n} );\n}\n},\nhandleBodyClassByRating( rating ) {\nif ( rating < this.minRating ) {\ndocument.body.classList.remove( 'tasty-recipes-selected-minimum-rating' );\nreturn;\n}\ndocument.body.classList.add( 'tasty-recipes-selected-minimum-rating' );\n},\ntoggleCommentTextareaRequired( rating ) {\nconst commentTextarea = document.getElementById( 'comment' );\nif ( ! commentTextarea ) {\nreturn;\n}\n\nif ( rating < this.minRating ) {\ncommentTextarea.setAttribute( 'required', '' );\nreturn;\n}\n\ncommentTextarea.removeAttribute( 'required' );\n},\nmaybeSendRating( rating, element ) {\nif ( this.savingRating === rating ) {\nreturn;\n}\n\nthis.savingRating = rating;\nwindow.TastyRecipes.staticTooltip.init( element );\n\nconst recipeCardElement = element.closest( '.tasty-recipes' );\nif ( ! recipeCardElement ) {\nwindow.TastyRecipes.staticTooltip.destroy();\nreturn;\n}\n\nwindow.TastyRecipes.ajax.sendPostRequest(\nwindow.trCommon.ajaxurl,\n{\naction: 'tasty_recipes_save_rating',\nrating,\nnonce: window.trCommon.ratingNonce,\npost_id: window.trCommon.postId,\nrecipe_id: recipeCardElement.dataset.trId,\n},\n( response ) => {\nwindow.TastyRecipes.staticTooltip.changeMessage( response.data.message );\nwindow.TastyRecipes.staticTooltip.show();\nthis.updateAverageText( response.data, recipeCardElement );\nthis.maybeFillCommentForm( response.data );<\/p>\n<p>\/\/ Hide the tooltip after 5 seconds.\nsetTimeout( () => {\nthis.maybeResetTooltip( recipeCardElement, response.data, rating );\n}, 5000 );\n},\n() => {\nthis.resetTooltip( recipeCardElement );\n}\n);\n},\nupdateAverageText( data, recipeCardElement ) {\nif ( ! data.average ) {\nreturn;\n}\nthis.setRatingPercent( data );<\/p>\n<p>if ( ! data.count ) {\nreturn;\n}<\/p>\n<p>const quickLink = document.querySelector( '.tasty-recipes-rating-link' );\nif ( quickLink ) {\nthis.setTextInContainer( quickLink, data );\nthis.setPartialStar( quickLink );\n}<\/p>\n<p>const cardStars = recipeCardElement.querySelector( '.tasty-recipes-ratings-buttons' );\ncardStars.dataset.trDefaultRating = data.average;\nthis.setTextInContainer( recipeCardElement.querySelector( '.tasty-recipes-rating' ), data );\n},\nsetTextInContainer( container, data ) {\nif ( ! container ) {\nreturn;\n}<\/p>\n<p>if ( data.label ) {\nconst ratingLabelElement = container.querySelector( '.rating-label' );\nif ( ratingLabelElement ) {\nratingLabelElement.innerHTML = data.label;\n}\nreturn;\n}<\/p>\n<p>const averageElement = container.querySelector( '.average' );\nif ( averageElement ) {\naverageElement.textContent = data.average;\n}<\/p>\n<p>const countElement = container.querySelector( '.count' );\nif ( countElement ) {\ncountElement.textContent = data.count;\n}\n},\nsetPartialStar( container ) {\nconst highestStar = container.querySelector( '[data-rating=\"' + Math.ceil( this.defaultRating ) + '\"]' );\nif ( highestStar ) {\nhighestStar.dataset.trClip = this.currentRatingPercentage;\n}\n},\nsetRatingPercent( data ) {\nthis.defaultRating = data.average.toFixed( 1 );\nconst parts = data.average.toFixed( 2 ).toString().split( '.' );\nthis.currentRatingPercentage = parts[1] ? parts[1] : 100;\nif ( this.currentRatingPercentage === '00' ) {\nthis.currentRatingPercentage = 100;\n}\n},\nsetCheckedStar( target ) {\nconst cardRatingContainer = target.closest( '.tasty-recipes-ratings-buttons' );\nconst selectedRatingElement = cardRatingContainer.querySelector( '[data-tr-checked]' );\nif ( selectedRatingElement ) {\ndelete selectedRatingElement.dataset.trChecked;\n}<\/p>\n<p>const thisStar = target.closest( '.tasty-recipes-rating' );\nthisStar.dataset.trChecked = 1;\nthisStar.querySelector( '[data-tr-clip]' ).dataset.trClip = 100;\n},\nmaybeFillCommentForm( data ) {\nif ( ! data.comment || ! data.comment.content ) {\nreturn;\n}<\/p>\n<p>const commentForm = document.querySelector( '#commentform' );\nif ( ! commentForm ) {\nreturn;\n}<\/p>\n<p>const commentBox = commentForm.querySelector( '[name=comment]' );\nif ( ! commentBox || commentBox.value ) {\nreturn;\n}<\/p>\n<p>\/\/ Add comment details for editing.\ncommentBox.innerHTML = data.comment.content;\nif ( data.comment.name ) {\ncommentForm.querySelector( '[name=author]' ).value = data.comment.name;\ncommentForm.querySelector( '[name=email]' ).value = data.comment.email;\n}\n},\nmaybeResetTooltip( recipeCardElement, data, rating ) {\nif ( this.savingRating === rating ) {\nthis.resetTooltip( recipeCardElement, data );\n}\n},\nresetTooltip( recipeCardElement, data ) {\nwindow.TastyRecipes.staticTooltip.destroy();\nthis.savingRating = false;<\/p>\n<p>\/\/ Reset the default rating.\nconst cardRatingContainer = recipeCardElement.querySelector( '.tasty-recipes-ratings-buttons' );\nif ( cardRatingContainer ) {\nthis.defaultRating = ( data && data.average ) ? data.average.toFixed(1) : cardRatingContainer.dataset.trDefaultRating;\ncardRatingContainer.dataset.trDefaultRating = this.defaultRating;<\/p>\n<p>this.resetSelectedStar( cardRatingContainer, data );\n}\n},\nresetSelectedStar( cardRatingContainer ) {\nconst selectedRatingElement = cardRatingContainer.querySelector( '[data-rating=\"' + Math.ceil( this.defaultRating ) + '\"]' );\nif ( selectedRatingElement ) {\nselectedRatingElement.querySelector( '[data-tr-clip]' ).dataset.trClip = this.currentRatingPercentage;\nselectedRatingElement.parentNode.dataset.trChecked = 1;\n}<\/p>\n<p>const previousSelectedElement= cardRatingContainer.querySelector( '[data-tr-checked]' );\nif ( previousSelectedElement ) {\nconst currentSelectedRating = previousSelectedElement.querySelector('[data-rating]');\nif ( currentSelectedRating !== selectedRatingElement ) {\ndelete previousSelectedElement.dataset.trChecked;\n}\n}\n},\nbackwardCompFormRatingPosition() {\nconst ratingsButtons = document.querySelector( '#respond .tasty-recipes-ratings-buttons, #tasty-recipes-comment-rating .tasty-recipes-ratings-buttons' );\nif ( ! ratingsButtons ) {\nreturn;\n}\nconst ratingsButtonsStyles = window.getComputedStyle(ratingsButtons);\nif ( ! ratingsButtonsStyles.display.includes( 'flex' ) ) {\nratingsButtons.style.direction = 'rtl';\n}<\/p>\n<p>if ( typeof tastyRecipesRating !== 'undefined' ) {\n\/\/ Select the rating that was previously selected in admin.\nratingsButtons.querySelector( '.tasty-recipes-rating[value=\"' + tastyRecipesRating + '\"]' ).checked = true;\n}<\/p>\n<p>const ratingSpans = ratingsButtons.querySelectorAll( '.tasty-recipes-rating' );\nfor (const ratingSpan of ratingSpans) {\nratingSpan.addEventListener( 'click', event => {\nif ( ratingSpan === event.target ) {\nreturn;\n}\nratingSpan.previousElementSibling.click();\n} );\n}\n}\n};<\/p>\n<p>(function(callback) {\nif (document.readyState !== \"loading\") {\ncallback();\n} else {\nwindow.addEventListener( 'load', callback );\n}\n})(() => {\nwindow.TastyRecipes.ratings.init( window.trCommon ? window.trCommon.minRating : 4 );\n});\n<\/script><\/div>\n<p>I also love serving this with\u00a0limes, grain-free or corn\u00a0tortillas, and a little\u00a0hot sauce\u00a0or\u00a0salsa. I also love using the filling to make\u00a0tacos\u00a0or\u00a0shred\u00a0onto my\u00a0salads. It&#8217;s a\u00a0lean protein option\u00a0with\u00a0great flavor\u00a0that can take any of your favorite\u00a0Mexican dishes\u00a0to the next level. It&#8217;s no-stress\u00a0slow cooking\u00a0at its best.<\/p>\n<p>&nbsp;<\/p>\n<p>Please let me know if you give it a try!<\/p>\n<p>xoxo<\/p>\n<p>Gina<\/p>\n<p>Follow me for more\u00a0Slow Cooker\u00a0Recipes! <a href=\"https:\/\/www.instagram.com\/fitnessista\/?hl=en\" data-wpel-link=\"external\">@fitnessista on Instagram<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>The post <a href=\"https:\/\/fitnessista.com\/slow-cooker-turkey-barbacoa\/\">Slow cooker turkey barbacoa<\/a> appeared first on <a href=\"https:\/\/fitnessista.com\">The Fitnessista<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sharing this amazing slow cooker recipe from my friend Arsy! Today, I\u2019m so excited I get to share a recipe from a new ebook,\u00a0Real Food Slow Cooker Recipes, written by my foodie blogger friend, Arsy Vartanian from\u00a0Rubies &#038; Radishes. Arsy and I first met through the\u00a0Beautycounter\u00a0world, and have become friends this past year. I love\u2026<br \/>\nThe post Slow cooker turkey barbacoa appeared first on The Fitnessista.<\/p>\n","protected":false},"author":1,"featured_media":130920,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"wprm-recipe-roundup-name":"","wprm-recipe-roundup-description":""},"categories":[20,1,21,22,19],"tags":[],"_links":{"self":[{"href":"https:\/\/bestratefinders.com\/blog\/wp-json\/wp\/v2\/posts\/130918"}],"collection":[{"href":"https:\/\/bestratefinders.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bestratefinders.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bestratefinders.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bestratefinders.com\/blog\/wp-json\/wp\/v2\/comments?post=130918"}],"version-history":[{"count":3,"href":"https:\/\/bestratefinders.com\/blog\/wp-json\/wp\/v2\/posts\/130918\/revisions"}],"predecessor-version":[{"id":130924,"href":"https:\/\/bestratefinders.com\/blog\/wp-json\/wp\/v2\/posts\/130918\/revisions\/130924"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bestratefinders.com\/blog\/wp-json\/wp\/v2\/media\/130920"}],"wp:attachment":[{"href":"https:\/\/bestratefinders.com\/blog\/wp-json\/wp\/v2\/media?parent=130918"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bestratefinders.com\/blog\/wp-json\/wp\/v2\/categories?post=130918"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bestratefinders.com\/blog\/wp-json\/wp\/v2\/tags?post=130918"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}