return ( <div className="portatour-reviews"> <div className="reviews-header"> <h2>Customer Reviews</h2> <div className="rating-summary"> <span className="average">stats?.average_rating.toFixed(1)</span> <StarRating rating=stats?.average_rating /> <span>(stats?.total_reviews reviews)</span> </div> </div>
public function tour()
protected $table = 'portatour_reviews'; protected $fillable = [ 'tour_id', 'user_id', 'booking_id', 'rating', 'title', 'comment', 'images', 'replies', 'is_verified_purchase', 'is_approved', 'helpful_count', 'reported_count' ]; portatour reviews
export default PortaTourReviews; // Admin routes Route::get('/admin/reviews/pending', [AdminReviewController::class, 'pending']); Route::patch('/admin/reviews/id/approve', [AdminReviewController::class, 'approve']); Route::delete('/admin/reviews/id', [AdminReviewController::class, 'destroy']); Admin view filters unapproved reviews, can approve, delete, or reply. 5. SEO & Schema.org Markup Add to tour page: return ( <