{"id":115720,"date":"2025-03-10T09:54:23","date_gmt":"2025-03-10T10:54:23","guid":{"rendered":"http:\/\/bestratefinders.com\/blog\/?p=115720"},"modified":"2025-03-16T13:59:38","modified_gmt":"2025-03-16T13:59:38","slug":"the-best-st-patricks-day-cocktail","status":"publish","type":"post","link":"http:\/\/bestratefinders.com\/blog\/everything-else\/the-best-st-patricks-day-cocktail\/","title":{"rendered":"The Best St. Patrick\u2019s Day Cocktail"},"content":{"rendered":"<p>Hi friends! Hope your morning is going well. I have a long post tomorrow about creating a healthy relationship with food, but today, I wanted to re-share this oldie but goodie in honor of the upcoming &#8220;all things green&#8221; holiday.<\/p>\n<p>Not only is this is the best St. Patrick&#8217;s Day cocktail, it&#8217;s the best cocktail for anytime, really.<\/p>\n<p><a href=\"https:\/\/fitnessista.com\/the-best-st-patricks-day-cocktail\/the-best-st-patricks-day-cocktail-3\/\" rel=\"attachment wp-att-178125 follow noopener noreferrer\" data-wpel-link=\"internal\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-178125\" src=\"http:\/\/bestratefinders.com\/blog\/wp-content\/uploads\/2025\/03\/The-best-st.-patricks-day-cocktail-1-777x1024-1.jpg\" data-fslightbox=\"gallery1\"><\/a><\/p>\n<p>There&#8217;s not too much &#8220;Irish&#8221; about me. There&#8217;s a little bit on my great-grandmother&#8217;s side, the fact that I used to Irish Step dance (I had a mean slip jig), and I married an Irish man. He introduced me to wonderful things about his family&#8217;s culture -they actually own a bar in Ireland that we&#8217;d love to visit someday!- including this cocktail. It has a rich sweetness to it, a little goes a long way as it&#8217;s very rich, and is absolutely perfect for the upcoming holiday.<\/p>\n<p>We&#8217;ve had some pretty memorable St. Patrick&#8217;s Days, like when we visited Savannah and the power went out in the entire city. (I was convinced it was aliens or an attack of some sort.) But with all of the ones we&#8217;ve spent together, my favorite was the night we stayed home in Valdosta, watched movies and drank copious amounts of this cocktail.<\/p>\n<p>My version is with almond milk, and the Pilot&#8217;s is with heavy cream or regular milk:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone\" style=\"display: block; margin-left: auto; margin-right: auto;\" title=\"ingredients\" src=\"http:\/\/bestratefinders.com\/blog\/wp-content\/uploads\/2025\/03\/ingredients-1-of-1.jpg\" alt=\"St Patrick&#039;s Day cocktail ingredients\" width=\"600\" height=\"400\" border=\"0\" \/><\/p>\n<p>[One of these things is not like the others. Also, these are older pics but my go-to almond milk right now is the Malk brand]<\/p>\n<p>As you guys know, I tend to stay away from dairy for health\/skin\/autoimmune reasons. I don&#8217;t stay away from Bailey&#8217;s Irish cream for any reason aaaaaand they now make a dairy-free version that&#8217;s pretty good \ud83d\ude09 I also have added back some dairy with <a href=\"https:\/\/fitnessista.com\/equilife-cbo-protocol-review\/\" data-wpel-link=\"internal\" rel=\"follow noopener noreferrer\">success after healing my gut!<\/a><\/p>\n<p>Here&#8217;s the recipe for my favorite cocktail, which I&#8217;ve dubbed &#8220;The Lucky Irish Girl.&#8221; Even though I&#8217;m mostly Irish by association, St. Paddy&#8217;s is one of my favorite holidays. Hope you enjoy this drink as much as we do!<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone\" style=\"display: block; margin-left: auto; margin-right: auto;\" title=\"The Lucky Irish Girl\" src=\"http:\/\/bestratefinders.com\/blog\/wp-content\/uploads\/2025\/03\/drink-1-of-1-4.jpg\" alt=\"The best St. Patrick&#039;s Day cocktail\" width=\"600\" height=\"400\" border=\"0\" \/><\/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\/the-best-st-patricks-day-cocktail\/print\/111068\/\" data-wpel-link=\"internal\" rel=\"follow noopener noreferrer\">Print<\/a><span class=\"tasty-recipes-jump-target\" id=\"tasty-recipes-111068-jump-target\" style=\"display:block;padding-top:2px;margin-top:-2px;\"><\/span><\/p>\n<div id=\"tasty-recipes-111068\" data-tr-id=\"111068\" class=\"tasty-recipes tasty-recipes-111068 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\">The Lucky Irish Girl Cocktail<\/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=\"275\" height=\"183\" src=\"http:\/\/bestratefinders.com\/blog\/wp-content\/uploads\/2025\/03\/lucky-irish-girl.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\/the-best-st-patricks-day-cocktail\/print\/111068\/\" 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-description\" data-tasty-recipes-customization=\"body-color.color\">\n<p>This is the best St. Patrick&#8217;s Day cocktail!<\/p>\n<\/p><\/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>-1 oz Baileys<\/li>\n<li>-1\/2 oz Kahlua<\/li>\n<li>-1\/2 oz Frangelico<\/li>\n<li>-2 oz milk of choice (heavy cream, coconut or almond milk)<\/li>\n<li>-Spinach or green food coloring (optional)<\/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_67d6d93d52364_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_67d6d93d52364_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\">Mix all ingredients in a cocktail shaker with a little ice.<\/li>\n<li id=\"instruction-step-2\">Shake it up!<\/li>\n<li id=\"instruction-step-3\">Strain, pour, and bottoms up.<\/li>\n<\/ol><\/div>\n<\/p><\/div>\n<div class=\"tasty-recipes-notes\">\n<h3 data-tasty-recipes-customization=\"h3-color.color h3-transform.text-transform\">Notes<\/h3>\n<div class=\"tasty-recipes-notes-body\" data-tasty-recipes-customization=\"body-color.color\">\n<ul>\n<li>If you&#8217;re using spinach to color your drink, blend it with the drink.<\/li>\n<\/ul><\/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\">1<\/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\":39867};\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>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone\" style=\"display: block; margin-left: auto; margin-right: auto;\" title=\"Baileys\" src=\"http:\/\/bestratefinders.com\/blog\/wp-content\/uploads\/2025\/03\/baileys-1-of-1.jpg\" alt=\"Adding the Baileys\" width=\"600\" height=\"400\" border=\"0\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone\" style=\"display: block; margin-left: auto; margin-right: auto;\" title=\"shake it up\" src=\"http:\/\/bestratefinders.com\/blog\/wp-content\/uploads\/2025\/03\/shake-1-of-1.jpg\" alt=\"Shake it up\" width=\"600\" height=\"389\" border=\"0\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone\" style=\"display: block; margin-left: auto; margin-right: auto;\" title=\"pour\" src=\"http:\/\/bestratefinders.com\/blog\/wp-content\/uploads\/2025\/03\/pour-1-of-1.jpg\" alt=\"Pour\" width=\"600\" height=\"400\" border=\"0\" \/><\/p>\n<p>I blended mine with a little spinach for a more festive green cocktail, which sadly, does not magically turn it into a healthy elixir (bonus vitamins! haha). It does make it pretty, though \ud83d\ude42 You can also use natural green food coloring.<\/p>\n<p>For the holiday, you can also make a LOVE warm Irish coffee with Irish whiskey, or a shot of Guinness with Bailey&#8217;s &#8211; always a classic. Green beer is always a family fave, too.<\/p>\n<p>Cheers!<\/p>\n<p><strong>What is your all-time favorite mocktail or cocktail recipe?<\/strong> This one is my all-time fave, and I also love some <a href=\"https:\/\/fitnessista.com\/summer-sangria\/\" data-wpel-link=\"internal\" rel=\"follow noopener noreferrer\">good sangria<\/a> and these <a href=\"https:\/\/fitnessista.com\/10-best-spring-mocktails\/\" data-wpel-link=\"internal\" rel=\"follow noopener noreferrer\">spring mocktail recipes.<\/a><\/p>\n<p><strong>Any past St. Patrick&#8217;s Day adventures to share?<\/strong><\/p>\n<p>The post <a href=\"https:\/\/fitnessista.com\/the-best-st-patricks-day-cocktail\/\">The Best St. Patrick&#8217;s Day Cocktail<\/a> appeared first on <a href=\"https:\/\/fitnessista.com\">The Fitnessista<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hi friends! Hope your morning is going well. I have a long post tomorrow about creating a healthy relationship with food, but today, I wanted to re-share this oldie but goodie in honor of the upcoming \u201call things green\u201d holiday. Not only is this is the best St. Patrick\u2019s Day cocktail, it\u2019s the best cocktail\u2026<br \/>\nThe post The Best St. Patrick\u2019s Day Cocktail appeared first on The Fitnessista.<\/p>\n","protected":false},"author":1,"featured_media":115722,"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":"http:\/\/bestratefinders.com\/blog\/wp-json\/wp\/v2\/posts\/115720"}],"collection":[{"href":"http:\/\/bestratefinders.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/bestratefinders.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/bestratefinders.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/bestratefinders.com\/blog\/wp-json\/wp\/v2\/comments?post=115720"}],"version-history":[{"count":3,"href":"http:\/\/bestratefinders.com\/blog\/wp-json\/wp\/v2\/posts\/115720\/revisions"}],"predecessor-version":[{"id":115730,"href":"http:\/\/bestratefinders.com\/blog\/wp-json\/wp\/v2\/posts\/115720\/revisions\/115730"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/bestratefinders.com\/blog\/wp-json\/wp\/v2\/media\/115722"}],"wp:attachment":[{"href":"http:\/\/bestratefinders.com\/blog\/wp-json\/wp\/v2\/media?parent=115720"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/bestratefinders.com\/blog\/wp-json\/wp\/v2\/categories?post=115720"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/bestratefinders.com\/blog\/wp-json\/wp\/v2\/tags?post=115720"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}