Viewing 15 replies - 1 through 15 (of 15 total)
  • You will have to override the single product template: https://docs.woothemes.com/document/template-structure/

    Unset the review tab:

    add_filter( 'woocommerce_product_tabs', 'woo_remove_product_tabs', 98 );
    function woo_remove_product_tabs( $tabs ) {
        unset( $tabs['reviews'] );  // Removes the reviews tab
        return $tabs;
    }

    And then copy/paste the code from “review.php” located in woocommerce/templates/single-product/ after the hook that calls in the tabs.

    Hope that helps!

    Thread Starter CaliforniaSea

    (@californiasea)

    This works perfectly if I were using the stock reviews, but I’m using a review plugin (Woocommerce Product Reviews Pro). Any other ideas? I’m reading up on hooks at the moment so I can have a better understanding.

    If you only unset the review tab, what happens? Does it remove your reviews? Just trying to understand how Product Reviews Pro is called in, as I’ve never used it.

    Thread Starter CaliforniaSea

    (@californiasea)

    Yes, it removes all the reviews as well as the entire tab.

    I believe the extension you are using adds on to the default commenting form.

    I was able to relocate the content from the reviews tab doing the following:

    1) Unset the tab using the above code
    2) Pasting the below code in your custom content-single-product.php template (where you want the review form to appear) Note: This code is straight from WooCommerce’s file single-product-review.php

    <div id="reviews">
    	<div id="comments">
    		<h3>Reviews</h3>
    		<?php if ( have_comments() ) : ?>
    
    		<ol class="commentlist">
    			<?php wp_list_comments( apply_filters( 'woocommerce_product_review_list_args', array( 'callback' => 'woocommerce_comments' ) ) ); ?>
    		</ol>
    
    		<?php if ( get_comment_pages_count() > 1 && get_option( 'page_comments' ) ) :
    			echo '<nav class="woocommerce-pagination">';
    			paginate_comments_links( apply_filters( 'woocommerce_comment_pagination_args', array(
    				'prev_text' => '&larr;',
    				'next_text' => '&rarr;',
    				'type'      => 'list',
    			) ) );
    			echo '</nav>';
    		endif; ?>
    
    		<?php else : ?>
    
    		<p class="woocommerce-noreviews"><?php _e( 'There are no reviews yet.', 'woocommerce' ); ?></p>
    
    		<?php endif; ?>
    	</div>
    
    	<?php if ( get_option( 'woocommerce_review_rating_verification_required' ) === 'no' || wc_customer_bought_product( '', get_current_user_id(), $product->id ) ) : ?>
    
    	<div id="review_form_wrapper">
    		<div id="review_form">
    			<?php
    				$commenter = wp_get_current_commenter();
    
    				$comment_form = array(
    					'title_reply'          => have_comments() ? __( 'Add a review', 'woocommerce' ) : __( 'Be the first to review', 'woocommerce' ) . ' &ldquo;' . get_the_title() . '&rdquo;',
    					'title_reply_to'       => __( 'Leave a Reply to %s', 'woocommerce' ),
    					'comment_notes_before' => '',
    					'comment_notes_after'  => '',
    					'fields'               => array(
    						'author' => '<p class="comment-form-author">' . '<label for="author">' . __( 'Name', 'woocommerce' ) . ' <span class="required">*</span></label> ' .
    						            '<input id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30" aria-required="true" /></p>',
    						'email'  => '<p class="comment-form-email"><label for="email">' . __( 'Email', 'woocommerce' ) . ' <span class="required">*</span></label> ' .
    						            '<input id="email" name="email" type="text" value="' . esc_attr(  $commenter['comment_author_email'] ) . '" size="30" aria-required="true" /></p>',
    					),
    					'label_submit'  => __( 'Submit', 'woocommerce' ),
    					'logged_in_as'  => '',
    					'comment_field' => ''
    				);
    
    				if ( get_option( 'woocommerce_enable_review_rating' ) === 'yes' ) {
    					$comment_form['comment_field'] = '<p class="comment-form-rating"><label for="rating">' . __( 'Your Rating', 'woocommerce' ) .'</label><select name="rating" id="rating">
    						<option value="">' . __( 'Rate&hellip;', 'woocommerce' ) . '</option>
    						<option value="5">' . __( 'Perfect', 'woocommerce' ) . '</option>
    						<option value="4">' . __( 'Good', 'woocommerce' ) . '</option>
    						<option value="3">' . __( 'Average', 'woocommerce' ) . '</option>
    						<option value="2">' . __( 'Not that bad', 'woocommerce' ) . '</option>
    						<option value="1">' . __( 'Very Poor', 'woocommerce' ) . '</option>
    					</select></p>';
    				}
    
    				$comment_form['comment_field'] .= '<p class="comment-form-comment"><label for="comment">' . __( 'Your Review', 'woocommerce' ) . '</label><textarea id="comment" name="comment" cols="45" rows="8" aria-required="true"></textarea></p>';
    
    				comment_form( apply_filters( 'woocommerce_product_review_comment_form_args', $comment_form ) );
    			?>
    		</div>
    	</div>
    
    <?php else : ?>
    
    	<p class="woocommerce-verification-required"><?php _e( 'Only logged in customers who have purchased this product may leave a review.', 'woocommerce' ); ?></p>
    
    <?php endif; ?>
    
    <div class="clear"></div>
    </div>
    Thread Starter CaliforniaSea

    (@californiasea)

    Close. Once the review tab is removed and this code added, it shows the original reviews. The plugin does not seem to be called.

    I don’t have a copy of the plugin, so I’m unable to look at the files that are included to see if there’s alternate code that can be used. Could you link to a screenshot of the plugin’s file structure?

    Thread Starter CaliforniaSea

    (@californiasea)

    Thanks! Can you attach a screenshot of the /templates/ directory? Just want to see what’s in there as well.

    Thread Starter CaliforniaSea

    (@californiasea)

    The only thing within the /templates/ directory is the folder “single-product”, the contents of which are shown in the second screenshot.

    Okay, thanks. So according to the documentation, the reviews are broken into different types of contributions. Have you checked the following files for an output hook or output html?
    – contribution.php
    – contributions.php

    Thread Starter CaliforniaSea

    (@californiasea)

    I don’t see anything, but I’m not 100% sure what I’m looking for as I don’t fully understand hooks yet. I’ve been playing around with it a bit, and if I paste all code from contributions.php into my content-single-product.php template,some of the plugin shows up, but it’s a bit buggy. I.e reviews themselves dont show up until you change how the reviews are sorted. Working on fixing those bugs now.

    Thread Starter CaliforniaSea

    (@californiasea)

    Ok so here’s exactly what I did to come up with a solution:

    1. Copied the content of contributions.php to a custom content-single-product.php template
    2. Applied CSS to hide the review tab

    If I removed the tab within function.php, the reviews weren’t showing up until you changed how they were sorted.

    Ideally you would want to unset the Reviews tab in functions.php, if possible. Using CSS display: none; is an easy hack alternative that most people result to when they don’t know how to fix something.

    So when you changed how they were sorted, were you able to unset the Reviews tab? Or are you still using CSS to remove the tab?

    Thread Starter CaliforniaSea

    (@californiasea)

    Yeah, definitely not satisfied with using display:none; but I’m not really sure what is causing the problem. Changing how they’re sorted on the backend has no effect. Here’s what happens if I unset the reviews tab:

    The reviews plugin displays, but it says there are no reviews until I change the sorting on the page (frontend) to something like “display most helpful” and then back to “display everything”.

Viewing 15 replies - 1 through 15 (of 15 total)
  • The topic ‘Moving tab content to page’ is closed to new replies.