Skip to Content
WooCommerceSingle product reviews

Single Product Reviews

Las reseñas del PDP están endurecidas respecto al comportamiento nativo de WooCommerce.

Archivos clave:

  • woocommerce/single-product-reviews.php
  • setup/modules/woocommerce-setup/module.php

Qué cambia respecto a Woo nativo

El override no pinta solo una lista de comentarios. Añade:

  • cabecera editorial con contador y media
  • formulario lateral propio
  • control de acceso por compra verificada
  • bloqueo de segunda reseña por el mismo usuario
  • subida de fotos con validación y persistencia
  • galería frontend para las fotos de cada reseña
  • metabox y columna admin para ver esas fotos

Acceso a reseñar

El estado lo resuelve Woo setup:

  • guest
  • not_purchased
  • already_reviewed
  • allowed

Regla real:

if (!wc_customer_bought_product($user_email, $user_id, $product_id)) { return 'not_purchased'; } if (bs_wc_setup_user_has_reviewed_product($product_id, $user_id)) { return 'already_reviewed'; }

Eso hace que una cuenta solo pueda publicar una reseña por producto y solo si compró.

Formulario con imágenes

El formulario añade un input múltiple review_images[] y un nonce específico.

Límites por defecto:

  • máximo 5 imágenes
  • máximo 5 MB por imagen
  • tipos permitidos JPG, PNG y WEBP

La validación corre en preprocess_comment y aborta el envío con wp_die si algo no cuadra.

Persistencia

Si la subida es válida, cada archivo pasa por media_handle_sideload() y los attachment IDs se guardan en comment meta.

Meta key:

  • _bs_wc_review_image_ids

Render frontend

Las imágenes se inyectan después del texto de la reseña mediante:

  • bs_wc_setup_get_review_image_gallery_markup()
  • bs_wc_setup_render_review_image_gallery()
  • hook woocommerce_review_after_comment_text

Si Fancybox está disponible, cada imagen se abre dentro de una galería review-{comment_ID}.

JS adicional

En single product, Woo setup encola además un script específico para el preview y límites del upload:

  • assets/js/woocommerce-review-images.js del módulo Woo setup

Ese script recibe por localize:

  • maxFiles
  • tooManyFilesMessage

Admin

Las fotos no se quedan solo en frontend. Woo setup añade:

  • metabox en edición de comentario
  • columna Fotos en la tabla de comentarios
  • estilos admin inline para miniaturas

Regla práctica

  • si falla el acceso a reseñar, revisa bs_wc_setup_get_product_review_access_state()
  • si fallan uploads, revisa nonce, límites y mime types en Woo setup
  • si falla el render de fotos, revisa el comment meta y el hook woocommerce_review_after_comment_text
Last updated on