Transformers: Rise of The Beasts

Much less than what meets the eye, Transformers" Rise of The Beasts is the GoBots of Transformers films.
57/1002922656
Staring
Michele Yeoh, Peter Dinklage, Pete Davidson, Ron Perlman, Peter Cullen
Director
Steven Caple Jr.
Rating
PG-13
Genre
Action, Adventure, Sci-Fi, Superhero
Release Date
June 9, 2023
Overall Score
Rating Overview
Story/Plot/Script
Visuals/Cinematography
Performance
Direction
Non-Wokeness
Rating Summary
Suffering from a retreaded plot and pacing gassed up on low-tess, Transformers: Rise of The Beasts is one of the lowest points in an already problematic franchise. On the bright side, this one didn't shoehorn in awkward lessons on how to score with 16-year-old chicks, and the audience never gets emotionally teabagged by Devastator's balls. So, there's that.

To the delight of children everywhere, the original Transformers cartoon first hit the small screen in 1984. The serial would be one of the most successful toy-selling ventures in marketing history, with Hasbro selling nearly $1 billion worth of the transforming figurines. Transformers” Rise of The Beasts, however, not so much.

Transformers: Rise of The Beasts

Unlike Fast X, which also requires you to put your brain into cruise control in order to enjoy but still has a lot of fun stunts and cool car chases, Transformers: Rise of The Beasts sputters around on low-octane fuel and bald tires. It’s the same story that we’ve already seen in several of the franchise’s films, only done with less aplomb.

Set in 1994, for no real reason except to score a handful of obvious and hamfisted nostalgia points, the seventh live-action film in the franchise, Transformers: Rise of The Beasts, once again finds the Autobots, led by the once again grumpy Optimus Prime, as they once again make human friends/allies who once again help them to stop evil Transformers who once again are hunting for an uber-powerful Transformers artifact that once again has been hidden on Earth…once again.

X Marks the Spot - Follow us Today!!

Coincidence ought to get a film credit because it and its developmentally delayed cousin, Sheer Dumb Luck, are responsible for every set piece, discovery, and character introduction. Just one of the dozens of examples is that an ancient Earth artifact that just so happens to contain one-half of the most powerful magical Transformers artifact in the universe just so happens to get into the hands of the one person in the world with an encyclopedic memory of every artifact known or suspected to exist. By some stroke of luck, she happens to have access to a laser-powered artifact turntable MacGuffin that seems to have been built for only one purpose, cracking open this specific artifact and activating the cyber-whatsit inside at the precise moment that both the Autobots and Terrorcons (you know they’re bad cause “terror” is right there in their name) are close enough to see its beacon, which conveniently can only be seen by Transformers.

Of course, no one in their right mind or above the age of 9 is going to a Transformers movie for the complex and thoughtful storytelling, they’re going for the action, and while Rise of The Beasts isn’t without its fun moments, they are few and far between. Additionally, since every story beat is advanced by happenstance, there’s never much reason to care what happens next. Instead, the audience is left waiting as Tesla’s Autopilot takes them to the next explosion of sound, color, and ordinance.

Director Steve Caple, Jr., best known for Creed II, does fumble through a few attempts to make the audience care about the people and robots involved; however, each one mainly falls flat. The exception is that of brothers Noah and Kris Diaz, played by Anthony Ramos and Dean Scott Vazquez. In defiance of the film’s mediocrity and cringe-inducing dialogue, the two manage to connect with one another emotionally, which in turn allows the audience to do so. This is accomplished chiefly thanks to a heartfelt and nuanced performance by Ramos that far exceeds the material.

Unfortunately, not much good can be said of the rest of the cast. Except for Peter Cullen’s Optimus and Pete Davidson’s Mirage, the Transformer voiceovers were so digitally muddled as to make them indistinguishable. Yes, one could argue that Liza Koshy and Michelle Yeoh’s lady bots’ voices were sufficiently contrasted with the men’s, but their three or four lines hardly constitute a blip on the radar. Furthermore, Davidson’s turn as the “comic relief” was equal to his talent. That is to say; it sucked tailpipe.

Davidson’s inept delivery was matched only by the horrible writing, of which there was much. In one exchange, the main villain, Scourge, espouses the line “I enjoy the look of confusion when an inferior being meets a higher power,†to an Optimus’s digital face that is so devoid of emotion that The Little Mermaid animators could be heard sighing with relief to no longer be alone.

That being said, in a soulless film full of emotionless digital robots, the blandest performance was given by Dominique Fishback. Regularly delivering her lines with all of the enthusiasm and charm of an IRS audit, Fishback’s lifeless performance was only overshadowed by her intelligibility. However, in her defense, she wasn’t helped by the fact that her character could have been replaced with a Google image search.

If things go boom is what you’re looking for, Transformers: Rise of The Beasts will certainly satiate, but, much like the cuisine from where most of its merchandise comes, it will leave you hungry thirty minutes after the final credits roll.

Woke Report

WOKE REPORT

You're Only Getting Half the Picture.

This section is our site's secret sauce, and what truly separates us from the rest. If you don't read it, you haven't read our review.

Have the filmmakers chosenradical progressive messaging over story?
Unlock the insightsthat could change your viewing experience and protect your family.

James Carrick

James Carrick is a passionate film enthusiast with a degree in theater and philosophy. James approaches dramatic criticism from a philosophic foundation grounded in aesthetics and ethics, offering insight and analysis that reveals layers of cinematic narrative with a touch of irreverence and a dash of snark.

Leave a Review
  1. Zippy Fister June 11, 2023 at

    Pete Townshend is a founder of the Who. Pete Davidson is the greasy comedian you are trying to refer to.

    1. James Carrick June 11, 2023 at

      Ha ha. Oops. Thanks.

  2. Nathan June 11, 2023 at

    “The white doctor won’t treat a child in need because the family’s bills are three months past due.” That normal the doctor could asian (I randomly picked a race) say that and some how it wouldn’t be racist

    “The white business owner won’t give the lead character a chance at a job because he “can’t take a risk on someone like you.” ” because the owner asked his previous employers if he was good and they said it was unreliable

    “The white museum curator is an ignorant and self-absorbed twit who obliviously takes credit for the wisdom and knowledge of her POC intern.” That part of life everyone one does that

    13
    68
    1. Ray July 4, 2023 at

      Point 1: If a doctor of any other race said that to a black person in a movie…….everyone would say it was racist. And the Emergency Medical Treatment and Active Act allows doctors and hospitals to refuse service unless its a life threatening emergency, which she did touch up on. But the scene played out like racism was implied.

      Point 2: True, but again the scene was played out in such a way to imply racism.

      Point 3: Again True, but see point number 2

      31
      5
    2. Google User July 17, 2023 at

      Very true. None of these things even came to mind while watching the movie. I guess you have to purposefully be looking for things you don’t like/ agree with to even notice any of it…the doctor not treating the family because of past due bills is completely normal (don’t know what him being white even had to do with it)…as far as the guy not hiring him, it should be CLEARLY understood as the someone like him who’s deemed unreliable by the Army. But you’d have to be really smart to understand that.
      And the museum curator taking credit is actually a fact…so not sure how any of that is considered woke. Watched it bootleg so not giving the creators any money. Also don’t watch cartoon series.

      2
      57
      1. James Carrick July 17, 2023 at

        While it’s true that all of the situations could happen in real life, and could be legitimate, we felt they were clearly played as racist tropes in this film. The moment that the lead character questioning my yelled at his potential employer, “people like me” solidified it.

        However, the reason that we list all of the instances is so that our readers can make up their own minds based on all available information.

        43
        3
        1. Master of the Universe July 23, 2023 at

          As the previous reboots of the Transformers Cartoon series in live action as being terrible and over the top, this version of Transformers falls in the category of which all early 80s and 90s kids grew up enjoyed watching. I’m not sure what ethnicity error or racism you could’ve portrayed in this Indie type live action film could have done. “Be sure to laugh at white people’s jokes” was a predominate trope of the 80s and 90s which follows the time of the setting in which this films took place. The whole not being able to provide you medical care in America without paying your bills is still pretty evident to this day unless you want to have Obama-care…Oops Trump destroyed that…well too bad for you. It doesn’t matter if the doctor was white, yellow, black or green; the whole healthcare system would not provide treatment unless you were going to die. Oh you are an intern and you get trampled over is another fact of the working environment in most large corporations at the time; it may be less evident now as snowflakes like yourself would like to believe in entitlement of not having any real world work experience. But in the 80s and 90s it was a fact that if you didn’t have any standing and you were at the bottom of the ladder you weren’t taken seriously. Did we the Gen X and Millennials gripe over the human cartoon characters being white at the time? Nope, we just enjoyed the cartoon and the lessons of working in unison no matter if you were a robot or a human. I guess finding things divide us is more important in your little tirade of this movie being woke.

          1
          45
          1. Informed July 25, 2023 at

            Nobody wants Obama care. It raises Healthcare cost because it required people to have health insurance. Reducing walk in rates and doctors working with people. Also the fine for people who chose not to have it on top of now being behind any care is silly.

            On top of that you are wrong. Many people rack up many bills and still are seen and treated. Maybe not someone so known with a reoccurring issue. But that’s not a common thing life threatening or not. Outside of comedies most hospitals want to help people. Now most specialist which that may have would do that for routine care. Cause most of them are solo providers but that looked like a hospital.

            Also imagine parading around a shifty manner of legislation that hurt more people than it helped.

            17
        2. MovieLuvr June 11, 2024 at

          You are absolutey right. These situations were clearly setup to be race-bait. Everyone of these could have been handled very differently if that was not what they were going for.
          For example, the smile line could have been something like employers or corporate America like that $h!t, but no, it had to be white people also implying that he won’t be speaking with or interviewing with anyone other than a white person, which is also racist…
          Or with the explanation of why he didn’t get the job…if they were not trying to race-bait, they wouldn’t have set things up the way they did. They could have had the owner say right off the bat that he couldn’t take a chance on someone who has a history of being unreliable or something similar. Simple as that. The only reason they had the owner clarify after the initial exchange is because the producers wanted the audience to automatically jump to race as the issue before they softened the situation with the clarification after the fact.
          As for the curator, yes these situations do in fact happen in real like regardless of race, gender, etc., but this was clearly setup to be a race-bait again, especially given the roll they were on with all the other situations. They could have easily made the curator a POC, which would have removed any question. And, not only did they play the race card, they also played the ditzy/stupid white person trope that Hollywood also likes to play these days.
          Another one that I think you missed, is that they of course had to have the main POC character turn to crime after not getting the job due to the initially implied racism. Trying to imply that his choice to become a criminal was not his fault, but rather the fault of racism, the establishment, or “the system”. Sorry, no…everyone is accountable for their own choices. What I find even crazier about this situation they setup, is that it showed the clear racism of the creative team behind this movie because of their choice to have the main POC character turn to crime when he failed to get a job. Hate to break it to the people behind this movie, but most people (POC or otherwise) do not turn to crime when they fail to land a job no matter how deperate they are. Guess what they do…they look for another job and even take temporary jobs if they need to in order to pay bills.

          The first 20 minutes or so of this movie was really tough to get through because of their over the top woke. We have mentioned quite a few woke situations that all happened in the first 20 minutes or so of the film and any one of them on their own would at least get an eye roll, but could be easily ignored if done in isolation. But, when you have one situation after another, after another it just becomes ridiculous and obvious what the producers are doing and becomes very difficult to watch. Add on top of all of this, the fact that the rest of the movie had average to poor story and character development. People like to put down the first Transformers, which objectively is not a great movie by any means, but compared to this is a masterpiece. The only thing you can really say for this movie is that it has excellent special effects, perhaps even a little overdone.

      2. Gailie October 7, 2023 at

        Didn’t anyone hear the racist words noahs mother said to noah when he was going for his interview she said remember to smile white people like that kind of s**t. Racism is Racism there should not be allowed in movies we trying to end Racism but if Racism is added to movies nothing going to change as people gonna think it ok to be racist its not so we should teach that everyone is equal no difference whatever race we are

        17
  3. Tia June 12, 2023 at

    Thank you for the review. I was revolted at the crude humor in the first film, have forgotten the second, kind of liked Bumblebee, and have zero desire to see this money grab. Maybe someday someone can do something worthwhile with the Transformer concept, but today is not that day.

    17
    1
    1. Dave June 16, 2023 at

      Bumblee sucked!

      16
      4
      1. gml2311 June 29, 2023 at

        Comparatively, Bumblebee was one of the better films in the Transformers series. Of course I’m comparing it to other Transformers films not the library of films at Large.

        3
        8
        1. kdogprime July 16, 2023 at

          No, it wasn’t.

          Bumblebee was the 2nd poorest performing film in the live action Transformer lineup. The only reason it didn’t lose money was because it was made very, very cheaply. It debuted at 21 million dollars for its first weekend, and didn’t even meet its projected five-day box office target. If you take into account the fact that a movie studio will take in roughly 40-45% of the box office, then Bumblebee only generated a profit of about 50-70 million dollars. That’s lower than any other Transformer’s film besides The Last Knight. If Bumblebee had a comparable budget to any of the previous Transfomers movies, it would have been a flop.

          4
          2
      2. essjaybe August 25, 2024 at

        I just sat through and can confirm this is correct.
        Actually had to check whether Disney had got their claws into this franchise too, that’s how weak and pathetic it felt.

  4. Juan June 14, 2023 at

    Gave it 5 out of 10. Watched bootleg, they are not getting my money. I picked up I the anti white, and capitalism nonsense.

    Now I know why they call it trans-formers…
    And like a real tranny…more than meets the eye.

    Boycott this garbage.
    Fallen veterans get 1 day, lgbtq90210 get a month black people get a month. My family served!
    I’m Hispanic not this latinx nonsense and I am American.
    I love America!

    Only gave it a 5/10 because of Peter Cullen.

    Semper Fi!

    42
    1. Dan August 21, 2023 at

      God bless you. Thank you and your family for your service. We are not forgetting about you. I agree. You all get one day while the lgbthejfbwdjkvbwijbwi get a whole month. It’s sick, disgusting and evil. Maybe if Trump gets re-elected we ought to sign a petition and bring it before him to give our awesome veterans a whole month. Heck, give them two just out of spite for the “pride” demons.

  5. Eric June 19, 2023 at

    It’s also worth mentioning the two principle human characters in the film absolutely butcher the English language with poor articulation and slang, and a lot of unnecessary vulgarities.

    The robot fighting was still cool, it made my 10yo happy.

    18
  6. RCC June 19, 2023 at

    Yep. The few white characters were either idiots or racists. Except for the innocent cops (both white men, of course) who were just doing their job, and chasing what they believed was a stolen car. And how does Mirage react after causing two fatal car crashes, that took the lives of two men who likely had families? He says “That was fun”. Oh, and lest we forget the only other human death in the film, the white male museum security guard. And, while he was obliterated by Scourge, our two “heroes of color”, who were not more than 5 feet away from him, survived without a scratch.

    22
    1
  7. Kirk June 23, 2023 at

    Im so glad I found this site. Ive avoided movies for years because Im tired of being blindsided by woke hate.

    24
  8. PB July 11, 2023 at

    Watched 11:31 before I had to internet search “Transformers rise of the woke?”, found this site, confirmed why I was suddenly feeling sick. You forgot the bit where the undoubtedly “stupid white male” nearly hit the Mary Sue intern with a cart, because he’s clumsy and male, cue scorn from our POC.

    21
    1
    1. A frenchgermanirishamerican mutt July 29, 2023 at

      Same exact thing here ∆∆∆∆∆∆∆ imagine the white characters are replaced with another specific race, then everyone notices. Sick to my stomach

  9. John July 13, 2023 at

    Woke, woke, woke trash. The director and writers are trash like this movie. Apparently white people are all racist and only blacks are hero’s. 100 percent a garbage movie. Surprised all the transformers were to gay.

    24
  10. Jom Momsd July 14, 2023 at

    Super woke, I walked out after the comment about laughing at white people jokes, they like that….F.U.

    20
  11. Ivan July 14, 2023 at

    Everyone calling this movie out as woke and giving examples are missing out on most obvious woke example: the diverse lead cast. I personally didn’t mind the lead male, I thought he played the role well and his back story was interesting and congruent with his character. However, who the hell thought it was a good idea to get a nobody female co-lead—unattracrive and uncharismatic—just because she’s black? She was not right for the film. Call me a boomer, but I want my protagonists’ leading lady to be interesting, attractive, appealing, feminine, etc. I don’t like the direction mainstream Hollywood is going/gone.

    15
    2
  12. Dan August 21, 2023 at

    So far I am giving this movie 1 star because I am barely 20 minutes into it and already I am getting the feeling that “White people, bad… people of color, good” so I may not even finish the movie. I saw exactly what you saw as they didn’t even try to hide it.

    I am getting really tired of trying to be entertained but ending up watching how I am a villain because of my skin color. They even tried to gloss over the theft of a Porsche by a black man and a Puerto Rican as doing “rich people a favor” trying to make the stereotypical common thievery by people of color as something noble or virtuous.

    And don’t get me started on the black assistant who is smarter and knows more than the white museum curator. And the curator uses her assistant’s knowledge to give herself credit.

    Of course, the writers, directors, producers, virtue signalers, responsible for this movie’s production and release can only gripe about how bad white people are in a movie. This is where their fairy tale lives and this is where it will remain.

    Writers, directors, producers: “Oh goodness! We white people re so bad so we are going to help the people who have fallen on hard times, according to them, and make a movie solely for them. I am going to write we the white people are the villains and the people of color are the victorious ones, as it should be. Now, please, pat me on the back and give me assurance that I did a good thing. I even knelt during the national anthem at a baseball game… all for you. I am standing up for your hardships. I am virtue signaling in your stead.”

    Yeah I’m just going to turn it off. No wonder this film was an utter failure. People of color, white people are not the villains. Stop listening to the ACTUAL villains.

  13. Avg YT Guy September 5, 2023 at

    Woke woke woke garbage cash grab with terrible actors. Felt like they just recycled the original hit live action transformers on the heels of the BLM ‘movement.’ Had to break the watch time over several days during bouts of shear boredom. I’m glad I pirated this garbage. On top of what has already been pointed out by the OP and commentors there’s still quite a few bits left for interpretation. Like the entire OST being hip hop/rap or bit of r&b. The movie shat in its own forced woke BS! A gorilla lead character in this type of culturally appropriated movie? I mean, C’MON! Who gave the approval on that one. The pacing of action in these types of movies gets hard to follow and there’s always bits where they slow down things so you can get an idea of what’s actually happening for plot altering actions. One bit of this the lead character goes to cut the antagonist back of knee/ACL was so on the nose! Literally is one of the most common basketball injuries. The only decent moment was a 10 min robot on robot violence at the end. During which you get the rug pulled from under you abruptly again so they could include the pink robot and obscure the voice digitally so you can’t tell if it’s a female or male oriented depiction.

  14. Jwoke September 15, 2023 at

    This was almost as bad as Elysium if you remember that pile of dog#hit. White supremacy imagined by all woke plot writers. Of course the brilliant intern to the curator of artifacts sounds and talks like she hasn’t ecek spent a semester in any college not called the streets

  15. Tyrone Biggums January 9, 2024 at

    Rise of the Garbage: BLM marxist racist shitshow of a movie. Don’t bother even if it’s free. Subtle anti-white agenda isn’t lost on anyone. Trans-racist-communists unite, lol.

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

No audience reviews yet. Be the first to leave one.

Related Posts

 

X Marks the Spot - Follow us Today!!

 

 

'; win.document.open(); win.document.write(html); win.document.close(); return true; } function escapeHtml(str){ return String(str || '').replace(/[&<>"']/g, function(ch){ return ({'&':'&','<':'<','>':'>','"':'"',"'":'''})[ch] || ch; }); } function renderShareOptionsWindow(win, landscapeUrl, squareUrl, shareUrl, heading){ if (!win || win.closed) return false; var safeHeading = escapeHtml(heading || 'Share options'); var safeLandscape = escapeHtml(landscapeUrl || ''); var safeSquare = escapeHtml(squareUrl || ''); var safeUrl = escapeHtml(shareUrl || ''); // Keep this HTML script-free. A nested script tag inside this inline footer script can break under Cloudflare Rocket Loader. var html = '' + safeHeading + '' + '' + '

' + safeHeading + '

'; win.document.open(); win.document.write(html); win.document.close(); try { var doc = win.document; var btn = doc.getElementById('copyLinkBtn'); var status = doc.getElementById('shareStatus'); var field = doc.getElementById('shareUrlField'); var urlToCopy = String(shareUrl || ''); function setCopied(){ if (status) status.textContent = 'Link copied.'; if (btn) { btn.textContent = 'Copied!'; win.setTimeout(function(){ btn.textContent = 'Copy link'; }, 1500); } } function focusField(){ if (!field) return; field.removeAttribute('readonly'); field.focus(); field.select(); field.setSelectionRange(0, field.value.length); field.setAttribute('readonly','readonly'); } function legacyCopy(text){ var ta = doc.createElement('textarea'); ta.value = text; ta.setAttribute('readonly','readonly'); ta.style.position='fixed'; ta.style.top='0'; ta.style.left='0'; ta.style.opacity='0.01'; ta.style.pointerEvents='none'; doc.body.appendChild(ta); ta.focus(); ta.select(); ta.setSelectionRange(0, ta.value.length); var ok=false; try{ ok=!!doc.execCommand('copy'); }catch(err){} doc.body.removeChild(ta); return ok; } win.__wiowCopyShareLink = async function(){ if (!urlToCopy) { if (status) status.textContent='No share URL available.'; return false; } focusField(); try { if (win.navigator && win.navigator.clipboard && typeof win.navigator.clipboard.writeText === 'function') { await win.navigator.clipboard.writeText(urlToCopy); setCopied(); return false; } } catch(err) {} if (legacyCopy(urlToCopy)) { setCopied(); return false; } if (status) status.textContent='Press Ctrl+C or Cmd+C to copy the selected link.'; focusField(); return false; }; if (btn) btn.addEventListener('click', function(e){ e.preventDefault(); win.__wiowCopyShareLink(); }); var nextBtn = doc.getElementById('nextComboBtn'); if (nextBtn) nextBtn.addEventListener('click', function(e){ e.preventDefault(); if (win.opener && win.opener.__wiowRefreshShareOptions) win.opener.__wiowRefreshShareOptions(win); }); var mainBtn = doc.getElementById('mainComboBtn'); if (mainBtn) mainBtn.addEventListener('click', function(e){ e.preventDefault(); if (win.opener && win.opener.__wiowResetShareOptions) win.opener.__wiowResetShareOptions(win); }); Array.prototype.slice.call(doc.querySelectorAll('.preview-frame img')).forEach(function(img){ img.addEventListener('click', function(){ var overlay=doc.createElement('div'); overlay.className='overlay'; var full=doc.createElement('img'); full.src=img.getAttribute('data-full') || img.src; full.alt='Preview'; overlay.appendChild(full); overlay.addEventListener('click', function(){ overlay.remove(); }); doc.body.appendChild(overlay); }); }); } catch(err) {} return true; } async function buildShareImage(container, options){ options = options || {}; var postId = container.getAttribute('data-post-id'); var sharePage = container.getAttribute('data-share-page'); var kind = (container.getAttribute('data-share-kind') || 'critics').toLowerCase(); var posterUrl = container.getAttribute('data-poster-url') || findPosterUrl(); if (!posterUrl){ posterUrl = ''; } var isRatings = (kind === 'ratings' || kind === 'ratings-admin' || kind === 'ratings-question'); var isAudience = (kind === 'audience' || kind === 'audience-teaser' || kind === 'audience-question'); var action = isRatings ? 'wiow_build_ratings_share_image' : (isAudience ? 'wiow_build_audience_share_image' : 'wiow_build_share_image'); var payload = new URLSearchParams(); payload.append('action', action); payload.append('post_id', String(postId)); payload.append('poster_url', posterUrl); payload.append('share_context', kind); if (options.force) { payload.append('force', '1'); } if (options.reset) { payload.append('reset_combo', '1'); } if (kind === 'ratings-admin') { payload.append('admin', '1'); } if (kind === 'ratings-question' || kind === 'audience-question' || kind === 'critics-question') { payload.append('questions', '1'); payload.append('mode', 'questions'); } if (kind === 'audience-teaser' || kind === 'critics-teaser') { payload.append('mode', 'teaser'); } var res = await fetch('https://worthitorwoke.com/wp-admin/admin-ajax.php', { method: 'POST', credentials: 'same-origin', headers: {'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8'}, body: payload.toString() }); var data = await res.json(); if (!data || !data.success || !data.data){ throw new Error((data && data.data && data.data.message) ? data.data.message : 'Share build failed.'); } return { image_url: data.data.image_url, share_url: data.data.share_url || sharePage, cycle_image_url: data.data.cycle_image_url || '', poster_url: data.data.poster_url || posterUrl || '' }; } async function buildShareSquareImage(container, cycleImageUrl, posterUrl, options){ options = options || {}; var postId = container.getAttribute('data-post-id'); var sharePage = container.getAttribute('data-share-page'); var kind = (container.getAttribute('data-share-kind') || 'critics').toLowerCase(); var isRatings = (kind === 'ratings' || kind === 'ratings-admin' || kind === 'ratings-question'); var isAudience = (kind === 'audience' || kind === 'audience-teaser' || kind === 'audience-question'); var action = isRatings ? 'wiow_build_ratings_share_image_square' : (isAudience ? 'wiow_build_audience_share_image_square' : 'wiow_build_share_image_square'); var payload = new URLSearchParams(); payload.append('action', action); payload.append('post_id', String(postId)); payload.append('share_context', kind); if (kind === 'ratings-admin') { payload.append('admin', '1'); } if (kind === 'ratings-question' || kind === 'audience-question' || kind === 'critics-question') { payload.append('questions', '1'); payload.append('mode', 'questions'); } if (kind === 'audience-teaser' || kind === 'critics-teaser') { payload.append('mode', 'teaser'); } if (cycleImageUrl) { payload.append('cycle_image_url', cycleImageUrl); } if (posterUrl) { payload.append('poster_url', posterUrl); } if (options.force) { payload.append('force', '1'); } if (options.reset) { payload.append('reset_combo', '1'); } var res = await fetch('https://worthitorwoke.com/wp-admin/admin-ajax.php', { method: 'POST', credentials: 'same-origin', headers: {'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8'}, body: payload.toString() }); var data = await res.json(); if (!data || !data.success || !data.data){ throw new Error((data && data.data && data.data.message) ? data.data.message : 'Square share build failed.'); } return { image_url: data.data.image_url, share_url: data.data.share_url || sharePage, cycle_image_url: data.data.cycle_image_url || cycleImageUrl || '', poster_url: data.data.poster_url || posterUrl || '' }; } window.__wiowRefreshShareOptions = async function(win){ if (!wiowCanAdminNext || !window.__wiowLastShareOptionsContext || !window.__wiowLastShareOptionsContext.row) return false; var ctx = window.__wiowLastShareOptionsContext; var row = ctx.row; var heading = ctx.heading || 'Share options'; var targetWin = win || ctx.win; try { renderShareOptionsLoadingWindow(targetWin, heading); var built = await buildShareImage(row, { force:true }); var builtSquare = await buildShareSquareImage(row, built.cycle_image_url || '', built.poster_url || '', { force:true }); if (!built || !built.image_url || !builtSquare || !builtSquare.image_url) throw new Error('Share build failed.'); window.__wiowLastShareOptionsContext = { row: row, heading: heading, win: targetWin }; renderShareOptionsWindow(targetWin, built.image_url, builtSquare.image_url, built.share_url || row.getAttribute('data-share-page') || '', heading); } catch(err) { if (targetWin && !targetWin.closed) { var msg = (err && err.message) ? err.message : 'Could not build next combo.'; targetWin.document.open(); targetWin.document.write('

Could not build next combo

' + escapeHtml(msg) + '

'); targetWin.document.close(); } } return false; }; window.__wiowResetShareOptions = async function(win){ if (!wiowCanAdminNext || !window.__wiowLastShareOptionsContext || !window.__wiowLastShareOptionsContext.row) return false; var ctx = window.__wiowLastShareOptionsContext; var row = ctx.row; var heading = ctx.heading || 'Share options'; var targetWin = win || ctx.win; try { renderShareOptionsLoadingWindow(targetWin, heading); var built = await buildShareImage(row, { force:true, reset:true }); var builtSquare = await buildShareSquareImage(row, built.cycle_image_url || '', built.poster_url || '', { force:true, reset:true }); if (!built || !built.image_url || !builtSquare || !builtSquare.image_url) throw new Error('Share build failed.'); window.__wiowLastShareOptionsContext = { row: row, heading: heading, win: targetWin }; renderShareOptionsWindow(targetWin, built.image_url, builtSquare.image_url, built.share_url || row.getAttribute('data-share-page') || '', heading); } catch(err) { if (targetWin && !targetWin.closed) { var msg = (err && err.message) ? err.message : 'Could not build main combo.'; targetWin.document.open(); targetWin.document.write('

Could not build main combo

' + escapeHtml(msg) + '

'); targetWin.document.close(); } } return false; }; // Unified capture-phase share handler. Chrome incognito can allow the visual // pointer animation while another script prevents the later bubbling click // handler from ever running. Handle all top-level share buttons here first. document.addEventListener('click', async function(e){ var targetEl = e.target && e.target.nodeType === 1 ? e.target : (e.target && e.target.parentElement ? e.target.parentElement : null); var btn = targetEl && targetEl.closest ? targetEl.closest('.wiow-share-btn') : null; if (!btn) return; // Ignore the Audience modal "Rate" button (it also has wiow-share-btn class in your CSS usage) if (btn.hasAttribute('data-wiow-audience-open')) return; var row = btn.closest('[data-wiow-share="1"], .wiow-share-row'); if (!row) return; var platform = btn.getAttribute('data-platform'); // Public top-level controls must work even when AJAX generation or membership-gated data is unavailable. // Options still uses the full image-builder path below. if (platform === 'x' || platform === 'link') { e.preventDefault(); e.stopPropagation(); var quickStatus = row.querySelector('.wiow-share-status'); var quickUrl = btn.getAttribute('data-copy-url') || row.getAttribute('data-share-page') || row.getAttribute('data-post-url') || wiowShareFallbackUrl(row); if (!quickUrl) { if (quickStatus) quickStatus.textContent = 'No share URL available.'; return; } if (platform === 'x') { openPopup(btn.getAttribute('href') || btn.getAttribute('data-wiow-x-intent') || wiowShareXIntentUrl(row)); if (quickStatus) quickStatus.textContent = ''; return; } if (quickStatus) quickStatus.textContent = 'Copying link…'; var copiedQuick = await wiowCopyShareText(quickUrl); var quickLabel = btn.querySelector('.wiow-share-btn__label'); var quickOriginal = quickLabel ? quickLabel.textContent : 'Copy link'; if (copiedQuick) { if (quickStatus) quickStatus.textContent = 'Link copied.'; if (quickLabel) { quickLabel.textContent = 'Copied!'; window.setTimeout(function(){ quickLabel.textContent = quickOriginal || 'Copy link'; }, 1500); } } else { if (quickStatus) quickStatus.textContent = 'Could not copy link.'; } return; } e.preventDefault(); var previewWin = null; if (platform === 'copy') { previewWin = openShareOptionsWindow(); var preloadKind = (row.getAttribute('data-share-kind') || 'critics').trim().toLowerCase(); var preloadHeading = (preloadKind === 'audience' || preloadKind === 'audience-teaser' || preloadKind === 'audience-question') ? 'Audience share options' : ((preloadKind === 'ratings' || preloadKind === 'ratings-admin' || preloadKind === 'ratings-question') ? 'Ratings share options' : 'Critic share options'); renderShareOptionsLoadingWindow(previewWin, preloadHeading); } var statusEl = row.querySelector('.wiow-share-status'); if (statusEl) statusEl.textContent = (platform === 'link') ? 'Copying link…' : 'Preparing share…'; try { var publicShareUrl = wiowShareFallbackUrl(row); var publicPostTitle = (row.getAttribute('data-post-title') || '').trim(); if (!publicPostTitle) publicPostTitle = 'this'; var publicShareKind = (row.getAttribute('data-share-kind') || 'critics').trim().toLowerCase(); var publicUpperTitle = publicPostTitle.toUpperCase(); var publicLineTwo = (publicShareKind === 'audience' || publicShareKind === 'audience-teaser' || publicShareKind === 'audience-question') ? 'See what the audience is saying.' : ((publicShareKind === 'ratings' || publicShareKind === 'ratings-admin' || publicShareKind === 'ratings-question') ? 'See the Worth it or Woke score.' : 'See what sane critics say.'); var publicBaseText = 'Is ' + publicUpperTitle + ' Worth it or Woke?\n\n' + publicLineTwo + '\n\nFollow @worthitorwoke for more.'; // Public top-level X and Copy Link controls should not depend on AJAX image generation. // The share URL itself carries the OG/Twitter metadata; scrapers can generate/fetch the image from that URL. if ((platform === 'x' || platform === 'link') && publicShareUrl) { if (platform === 'link') { var copiedPublicLink = await wiowCopyShareText(publicShareUrl); var publicLabel = btn.querySelector('.wiow-share-btn__label'); var publicOriginalLabel = publicLabel ? publicLabel.textContent : ''; if (copiedPublicLink) { if (statusEl) statusEl.textContent = 'Link copied.'; if (publicLabel) { publicLabel.textContent = 'Copied!'; window.setTimeout(function(){ publicLabel.textContent = publicOriginalLabel || 'Copy link'; }, 1500); } } else { if (statusEl) statusEl.textContent = 'Could not copy link.'; } return; } openPopup('https://twitter.com/intent/tweet?text=' + encodeURIComponent(publicBaseText) + '&url=' + encodeURIComponent(publicShareUrl)); if (statusEl) statusEl.textContent = ''; return; } var built; var builtSquare = null; if (platform === 'copy') { // Build the landscape first so it chooses exactly one featured/gallery cycle image, // then pass that same image to the square builder. This prevents two square // outputs or mismatched gallery states in the Share Options window. built = await buildShareImage(row, { force:true }); builtSquare = await buildShareSquareImage(row, built.cycle_image_url || '', built.poster_url || '', { force:true }); if (!built || !built.image_url) { throw new Error('Landscape share build failed.'); } if (!builtSquare || !builtSquare.image_url) { throw new Error('Square share build failed.'); } } else { built = await buildShareImage(row); } var shareUrl = built.share_url; var postUrl = (row.getAttribute('data-post-url') || '').trim() || shareUrl; var postTitle = (row.getAttribute('data-post-title') || '').trim(); if (!postTitle) postTitle = 'this'; var shareKind = (row.getAttribute('data-share-kind') || 'critics').trim().toLowerCase(); var upperTitle = postTitle.toUpperCase(); var lineTwo = (shareKind === 'audience' || shareKind === 'audience-teaser' || shareKind === 'audience-question') ? 'See what the audience is saying.' : ((shareKind === 'ratings' || shareKind === 'ratings-admin' || shareKind === 'ratings-question') ? 'See the Worth it or Woke score.' : 'See what sane critics say.'); var baseText = 'Is ' + upperTitle + ' Worth it or Woke?\n\n' + lineTwo + '\n\nFollow @worthitorwoke for more.'; var textWithUrl = baseText + '\n\n' + shareUrl; var postTextWithUrl = baseText + '\n\n' + postUrl; var encodedUrl = encodeURIComponent(shareUrl); var encodedBaseText = encodeURIComponent(baseText); var encodedTextWithUrl = encodeURIComponent(textWithUrl); if (platform === 'link') { var copiedLink = await wiowCopyShareText(shareUrl); var label = btn.querySelector('.wiow-share-btn__label'); var originalLabel = label ? label.textContent : ''; if (copiedLink) { if (statusEl) statusEl.textContent = 'Link copied.'; if (label) { label.textContent = 'Copied!'; window.setTimeout(function(){ label.textContent = originalLabel || 'Copy link'; }, 1500); } } else { if (statusEl) statusEl.textContent = 'Could not copy link.'; } return; } if (platform === 'x'){ // X gets the URL through the intent URL parameter, so do not also duplicate it in the tweet text. openPopup('https://twitter.com/intent/tweet?text=' + encodedBaseText + '&url=' + encodedUrl); } else if (platform === 'facebook'){ // Facebook sharing has been intentionally removed from this plugin flow. if (statusEl) statusEl.textContent = 'Facebook sharing is currently disabled.'; } else if (platform === 'copy'){ var heading = (shareKind === 'audience' || shareKind === 'audience-teaser' || shareKind === 'audience-question') ? 'Audience share options' : ((shareKind === 'ratings' || shareKind === 'ratings-admin' || shareKind === 'ratings-question') ? 'Ratings share options' : 'Critic share options'); window.__wiowLastShareOptionsContext = { row: row, heading: heading, win: previewWin }; var shown = renderShareOptionsWindow(previewWin, built.image_url, (builtSquare ? builtSquare.image_url : ''), shareUrl, heading); if (!shown) { var copied = false; if (navigator.clipboard && window.isSecureContext && navigator.clipboard.writeText){ try { await navigator.clipboard.writeText(shareUrl); copied = true; } catch (copyErr) {} } if (!copied) { var ta = document.createElement('textarea'); ta.value = shareUrl; ta.setAttribute('readonly', 'readonly'); ta.style.position = 'fixed'; ta.style.opacity = '0'; document.body.appendChild(ta); ta.focus(); ta.select(); ta.setSelectionRange(0, ta.value.length); copied = !!document.execCommand('copy'); ta.remove(); } } } if (statusEl) statusEl.textContent = (platform === 'copy') ? 'Ready.' : ''; } catch(err){ if (previewWin && !previewWin.closed) { previewWin.close(); } if (statusEl) statusEl.textContent = (err && err.message) ? err.message : 'Could not share.'; } }, true); })();