Add Review Form To Product Page Magento 1.9
-
12-12-2019 - |
Question
I'm looking to move the product review form from /review/product/list/ to the product page, underneath existing reviews, on Magento 1.9.0.1 using a child theme of RWD.
This is the original review tab in review.xml:
<catalog_product_view>
<reference name="product.info">
<block type="review/product_view_list" name="product.reviews" as="reviews" template="review/product/view/list.phtml" after="additional">
<action method="addToParentGroup"><group>detailed_info</group></action>
<action method="setTitle" translate="value"><value>Reviews</value></action>
</block>
</reference>
</catalog_product_view>
This displays the reviews and form on the product page:
<catalog_product_view>
<reference name="product.info">
<block type="review/product_view_list" name="product.info.product_additional_data" as="product_additional_data" template="review/product/view/list.phtml">
<block type="review/form" name="product.review.form" as="review_form">
<block type="page/html_wrapper" name="product.review.form.fields.before" as="form_fields_before" translate="label">
<label>Review Form Fields Before</label>
<action method="setMayBeInvisible"><value>1</value></action>
</block>
</block>
</block>
</reference>
</catalog_product_view>
How do I put this into the 'reviews' tab?
Solution
You are going into the right direction, but you need to do some modifications:
addToParentGroup
andsetTitle
are used to show content in review so add this code below<action method="addToParentGroup"><group>detailed_info</group></action> <action method="setTitle" translate="value"><value>Reviews</value></action>
you need to change block alias name of block type
review/product_view_list
toproduct_additional_data_review
asproduct_additional_data
alias name already exists in product.<block type="review/product_view_list" name="product.info.product_additional_data_review" as="product_additional_data_review" template="review/product/view/list.phtml"> <action method="addToParentGroup"><group>detailed_info</group></action> <action method="setTitle" translate="value"><value>Reviews</value></action> <block type="review/form" name="product.review.form" as="review_form"> <block type="page/html_wrapper" name="product.review.form.fields.before" as="form_fields_before" translate="label"> <label>Review Form Fields Before</label> <action method="setMayBeInvisible"><value>1</value></action> </block> </block> </block>
OTHER TIPS
Take the catalog.xml from default to your theme and change as follows
<catalog_product_view translate="label">
<reference name="content">
<block type="catalog/product_view" name="product.info" template="catalog/product/view.phtml">
<block type="review/product_view_list" name="product.top.reviews" as="product.top.reviews" template="review/product/view/list.phtml">
<block type="review/form" name="product.review.form" as="review_form" />
</block>
</block>
</reference>
</catalog_product_view>
and in the detail page try adding
<?php echo $this->getChildHtml('review_form') ?>
thanks a lot for the hint, for me it worked very fine. i still have a problem, the review tabs are showen twice. the xml is correctly, take a look:
<block type="review/product_view_list" name="product.info.product_additional_data_review" as="product_additional_data_review" template="review/product/view/list.phtml">
<action method="addToParentGroup"><group>detailed_info</group></action>
<action method="setTitle" translate="value"><value>Customer Reviews</value></action>
<block type="review/form" name="product.review.form" as="review_form">
<block type="page/html_wrapper" name="product.review.form.fields.before" as="form_fields_before" translate="label">
<label>Review Form Fields Before</label>
<action method="setMayBeInvisible"><value>1</value></action>
</block>
</block>
</block>
Add <remove name="product.reviews"/>
before the tags and the duplicated version should be gone. This way the reviews block will be first removed and after this it will be added again with the new reviews block.
<block type="review/product_view_list" name="product.info.product_additional_data_review" as="product_additional_data_review" template="review/product/view/list.phtml">
<remove name="product.reviews"/>
<action method="addToParentGroup"><group>detailed_info</group></action>
<action method="setTitle" translate="value"><value>Reviews</value></action>
<block type="review/form" name="product.review.form" as="review_form">
<block type="page/html_wrapper" name="product.review.form.fields.before" as="form_fields_before" translate="label">
<label>Review Form Fields Before</label>
<action method="setMayBeInvisible"><value>1</value></action>
</block>
</block>
</block>
Just put this code in your review.xml
layout theme file.
<catalog_product_view>
<reference name="product.info">
<block type="review/product_view_list" name="product.reviews" as="reviews" template="review/product/view/list.phtml" after="additional">
<action method="addToParentGroup">
<group>detailed_info</group>
</action>
<action method="setTitle" translate="value">
<value>Reviews</value>
</action>
<block type="review/form" name="product.review.form" as="review_form"/>
<block type="review/product_view_list" name="product.info.product_additional_data" as="product_additional_data_review" template="review/product/view/reviews-in-tab.phtml">
<block type="review/form" name="product.review.form" as="review_form"/>
</block>
</block>
</reference>
</catalog_product_view>