Loading...

How to Automatically Redirect Back after Submitting Reviews and Ratings for a Configurable Product in Magento.

Pravin Prajapati  ·   17 Oct 2022
How to Automatically Redirect Back after Submitting Reviews and Ratings for a Configurable Product in Magento
service-banner

Introduction

To redirect back automatically after giving reviews and ratings on a config product in Magento, you can use the built-in functionality of the platform. You can customize the redirect URL by modifying the code in the review controller or using an extension that provides this feature.

In Magento, you can set up automatic redirection to the product page after submitting reviews and ratings for a configurable product. Enabling this feature on your Magento site can significantly enhance the customer experience and save time. Follow the steps provided to activate it.

I think it could be Magento’s bug, or maybe not, but I am suffering from this issue.

The issue is that whenever you give ratings and reviews on the config product and after the rating, you are not allowed to add a product to the cart on the config product.

So, here I made a simple solution for that.

The solution is you can automatically redirect to that product after successfully giving a review and rating.

For that, you should follow the below steps.

Copy the below file path into your theme or module if the file is overridden.

app\design\frontend\rwd\default\template\review\from.phtml

php

<div class="form-add">
   <h2><?php echo $this->__('Write Your Own Review') ?></h2>
   <?php if ($this->getAllowWriteReviewFlag()): ?>
   <form action="<?php echo $this->getAction() ?>" method="post" id="review-form">
       <?php echo $this->getBlockHtml('formkey'); ?>
       <?php echo $this->getChildHtml('form_fields_before')?>
       <h3><?php echo $this->__("You're reviewing:"); ?>
           <span><?php echo $this->escapeHtml($this->getProductInfo()->getName()) ?></span>
       </h3>
       <?php Mage::getSingleton('review/session')->setRedirectUrl($this->htmlEscape($this->getProductInfo()->getProductUrl())); ?> // This Code Is Responsible For Redirect.
       <div class="fieldset">
           <?php if( $this->getRatings() && $this->getRatings()->getSize()): ?>
               <h4><?php echo $this->__('How do you rate this product?') ?> <em class="required">*</em></h4>
               <span id="input-message-box"></span>
               <table class="data-table review-summary-table ratings" id="product-review-table">
                   <col width="1" />
                   <col />
                   <col />
                   <col />
                   <col />
                   <col />
                   <thead>
                       <tr>
                           <th> </th>
                           <th>
                               <div class="rating-box">
                                   <span class="rating-number">1</span>
                                   <span class="rating nobr" style="width:20%;"><?php echo $this->__('1 star') ?></span>
                               </div>
                           </th>
                           <th>
                               <div class="rating-box">
                                   <span class="rating-number">2</span>
                                   <span class="rating nobr" style="width:40%;"><?php echo $this->__('2 star') ?></span>
                               </div>
                           </th>
                           <th>
                               <div class="rating-box">
                                   <span class="rating-number">3</span>
                                   <span class="rating nobr" style="width:60%;"><?php echo $this->__('3 star') ?></span>
                               </div>
                           </th>
                           <th>
                               <div class="rating-box">
                                   <span class="rating-number">4</span>
                                   <span class="rating nobr" style="width:80%;"><?php echo $this->__('4 star') ?></span>
                               </div>
                           </th>
                           <th>
                               <div class="rating-box">
                                   <span class="rating-number">5</span>
                                   <span class="rating nobr" style="width:100%;"><?php echo $this->__('5 star') ?></span>
                               </div>
                           </th>
                       </tr>
                   </thead>
                   <tbody>
                    <?php foreach ($this->getRatings() as $_rating): ?>
                       <tr>
                           <th><?php echo $this->escapeHtml($_rating->getRatingCode()) ?></th>
                       <?php foreach ($_rating->getOptions() as $_option): ?>
                           <td class="value"><label for="<?php echo $this->escapeHtml($_rating->getRatingCode()) ?>_<?php echo $_option->getValue() ?>"><input type="radio" name="ratings[<?php echo $_rating->getId() ?>]" id="<?php echo $this->escapeHtml($_rating->getRatingCode()) ?>_<?php echo $_option->getValue() ?>" value="<?php echo $_option->getId() ?>" class="radio" /></label></td>
                       <?php endforeach; ?>
                       </tr>
                    <?php endforeach; ?>
                   </tbody>
               </table>
               <input type="hidden" name="validate_rating" class="validate-rating" value="" />
               <script type="text/javascript">decorateTable('product-review-table')</script>
           <?php endif; ?>

               <ul class="form-list">
                   <li>
                       <label for="review_field" class="required"><em>*</em><?php echo $this->__('Let us know your thoughts') ?></label>
                       <div class="input-box">
                           <textarea name="detail" id="review_field" cols="5" rows="3" class="required-entry"><?php echo $this->escapeHtml($data->getDetail()) ?></textarea>
                       </div>
                   </li>

                  <li class="inline-label">
                       <label for="summary_field" class="required"><em>*</em><?php echo $this->__('Summary of Your Review') ?></label>
                       <div class="input-box">
                           <input type="text" name="title" id="summary_field" class="input-text required-entry" value="<?php echo $this->escapeHtml($data->getTitle()) ?>" />
                       </div>
                  </li>

                   <li class="inline-label">
                       <label for="nickname_field" class="required"><em>*</em><?php echo $this->__("What's your nickname?") ?></label>
                       <div class="input-box">
                           <input type="text" name="nickname" id="nickname_field" class="input-text required-entry" value="<?php echo $this->escapeHtml($data->getNickname()) ?>" />
                       </div>
                   </li>

               </ul>
           </div>
           <div class="buttons-set">
               <button type="submit" title="<?php echo $this->__('Submit Review') ?>" class="button"><span><span><?php echo $this->__('Submit Review') ?></span></span></button>
           </div>
   </form>
   <script type="text/javascript">
   //<![CDATA[
       var dataForm = new VarienForm('review-form');
       Validation.addAllThese(
       [
              ['validate-rating', '<?php echo $this->__('Please select one of each of the ratings above') ?>', function(v) {
                   var trs = $('product-review-table').select('tr');
                   var inputs;
                   var error = 1;

                   for( var j=0; j < trs.length; j++ ) {
                       var tr = trs[j];
                       if( j > 0 ) {
                           inputs = tr.select('input');

                           for( i in inputs ) {
                               if( inputs[i].checked == true ) {
                                   error = 0;
                               }
                           }

                           if( error == 1 ) {
                               return false;
                           } else {
                               error = 1;
                           }
                       }
                   }
                   return true;
               }]
       ]
       );
   //]]>
   </script>
   <?php else: ?>
   <p class="review-nologged" id="review-form">
       <?php echo $this->__('Only registered users can write reviews. Please, <a href="%s">log in</a> or <a href="%s">register</a>', $this->getLoginLink(), Mage::helper('customer')->getRegisterUrl()) ?>
   </p>
   <?php endif ?>
</div>

Contact us:+91 8128405131

Email send us at hello@elightwalk.com

Pravin Prajapati
Full Stack Developer

Expert in frontend and backend development, combining creativity with sharp technical knowledge. Passionate about keeping up with industry trends, he implements cutting-edge technologies, showcasing strong problem-solving skills and attention to detail in crafting innovative solutions.

Most Visited Blog

How to create a module in Magento 2: Sample Module A Step-by-Step Guide

Embark on Magento 2 journey with confidence! Our step-by-step tutorial module development. Learn how to create a Module to harness the potential of Magento 2 customization for personalized and efficient e-commerce experience.

Custom Route in Venia: Enhancing Your Storefront

Discover the potential of unique routes in Venia for a personalized retail experience. Improve Magento PWA capabilities by following our simple approach to customizing routes for maximum performance and user engagement.