Title: BuddyPilot Withdrawal &#8211; Easy Returns for WooCommerce
Author: BuddyPilot
Published: <strong>20 de mayo de 2026</strong>
Last modified: 5 de septiembre de 2026

---

Buscar plugins

![](https://ps.w.org/buddypilot-withdrawal/assets/banner-772x250.png?rev=3539945)

![](https://ps.w.org/buddypilot-withdrawal/assets/icon-256x256.png?rev=3539945)

# BuddyPilot Withdrawal – Easy Returns for WooCommerce

 Por [BuddyPilot](https://profiles.wordpress.org/buddypilot/)

[Descargar](https://downloads.wordpress.org/plugin/buddypilot-withdrawal.1.0.22.zip)

 * [Detalles](https://es.wordpress.org/plugins/buddypilot-withdrawal/#description)
 * [Valoraciones](https://es.wordpress.org/plugins/buddypilot-withdrawal/#reviews)
 *  [Instalación](https://es.wordpress.org/plugins/buddypilot-withdrawal/#installation)
 * [Desarrollo](https://es.wordpress.org/plugins/buddypilot-withdrawal/#developers)

 [Soporte](https://wordpress.org/support/plugin/buddypilot-withdrawal/)

## Descripción

**BuddyPilot Withdrawal – Easy Returns for WooCommerce** añade a tu tienda un flujo
de trabajo completo de devoluciones y desistimiento: el botón de desistimiento de
la UE obligatorio que exige el **Article 11a of EU Directive 2023/2673**, un formulario
de devolución online para los clientes y un escritorio de declaraciones para el 
operador.

A partir del **19 de junio de 2026**, todas las tiendas WooCommerce con clientes
de la UE deben proporcionar una función de desistimiento claramente visible y fácilmente
accesible (botón «desistir del contrato aquí») junto con los requisitos de información
de derecho de desistimiento existentes.

El plugin funciona junto a tu política de devoluciones: el cliente desiste del contrato
online durante el periodo de desistimiento (14 días por defecto, configurable) y
tú procesas la devolución y el reembolso de WooCommerce con las herramientas nativas.

#### Lo que hace el plugin

**Orientado al cliente**

 * **Botón conforme al Artículo 11a «Desistir del contrato aquí»** en la página 
   de detalle de pedido de Mi Cuenta
 * **Formulario de desistimiento de dos pasos**: selección de artículos, vista previa
   de declaración, confirmación de un clic
 * **Soporte de producto variable**: cada variante (tamaño, color, etc.) aparece
   con sus etiquetas de atributo completas como una línea separada en el formulario
   de desistimiento
 * **Soporte de pago de invitado** a través de flujo de verificación directa (correo
   electrónico + número de pedido, sin inicio de sesión requerido)
 * **Historial de desistimiento de Mi Cuenta** lista y página de detalle de declaración
 * **Captura de consentimiento del Artículo 16(m)** en el pago para bienes digitales
   y virtuales (configurable: requerido, opcional u oculto)
 * **Correo de declaración del cliente** que sirve como reconocimiento de medio 
   duradero requerido por el Artículo 11a(3)
 * **Correo electrónico de desistimiento resuelto** enviado al cliente después de
   que el operador cierre la declaración; incluye el enlace a la plataforma ODR 
   de la UE (ec.europa.eu/consumers/odr) cuando se rechaza algún artículo
 * **Estado de resolución por artículo** visible en el formulario de desistimiento
   cuando se cierra una declaración: cada artículo muestra un distintivo «aceptado»
   o «rechazado» con el motivo del rechazo y el enlace ODR, para que el cliente 
   entienda el resultado sin tener que contactar con el servicio de atención al 
   cliente

**Orientado al operador**

 * **Metabox de edición de pedido** para registrar declaraciones recibidas por teléfono,
   correo o en persona
 * **Página independiente «Añadir nueva declaración»** para colas de operadores 
   de alto volumen sin salir de la lista de declaraciones
 * **Lista de declaraciones** con búsqueda, filtrado y ordenamiento en el administrador
   de WooCommerce
 * **Página de detalle de la declaración** con historial de auditoría completo y
   flujo de trabajo de resolución: aceptar todos, rechazar todos o resolución parcial
   con decisiones por artículo y motivos de rechazo individuales
 * **Correo de notificación del administrador** enviado inmediatamente cuando un
   cliente presenta un desistimiento

**Legal y cumplimiento**

 * **Estado de pedido personalizado** `wc-withdrawal` (opcional, registrado por 
   el plugin) con un historial de cambios completo registrado como notas de pedido
   de WooCommerce
 * **Página de información de desistimiento Anexo I(A)** disponible para generar
   con un clic desde Ajustes
 * **Página de formulario de desistimiento modelo Anexo I(B)** disponible para generar
   con un clic desde Ajustes, publicada como página de WordPress y vinculada automáticamente
   desde correos de pedidos y Mi Cuenta
 * **Período de reembolso configurable** (14 días por defecto, coincide con tus 
   términos de contrato)
 * **Estados «entregados» configurables** que inician el contador de desistimiento
 * **Atribución de costos de devolución** (paga el consumidor o el vendedor, según
   los requisitos del Anexo I(A))
 * Exportación y anonimización **de datos personales RGPD** compatible con herramientas
   de privacidad de WordPress
 * Compatibilidad **HPOS** (High-Performance Order Storage) y modo post-meta heredado
 * Cumplimiento de accesibilidad **WCAG 2.2 AA** en todos los formularios orientados
   al cliente
 * Se incluyen **traducciones al polaco e inglés**

#### Complemento Pro

La funcionalidad extendida está disponible a través del complemento [BuddyPilot Withdrawal Pro](https://buddypilot.io/plugins/withdrawal-pro/):

 * Reembolso automático aprobado por el operador, generado a partir de los artículos
   declarados (un clic desde la pantalla de declaración)
 * Verificación del contador de descargas: restaura el derecho de desistimiento 
   cuando un producto digital nunca fue descargado realmente, reduciendo la denegación
   injustificada de reembolsos
 * Compatibilidad con WooCommerce Subscriptions: cancela las renovaciones futuras
   y prorratea el período de facturación actual conforme al Article 9(2)(b)(iii)
 * Compatibilidad con WooCommerce Product Bundles: gestión automática según el tipo
   de paquete. Para los paquetes por artículo con un descuento configurado, elija
   si las devoluciones parciales conservan el importe pagado o pierden el descuento
   completo del paquete
 * Exportación en PDF de la declaración legal de desistimiento
 * Generación del formulario Annex I(B) por país

## Instalación

 1. Carga la carpeta del plugin a `/wp-content/plugins/` o instala a través de **Plugins
    > Añadir nuevo**.
 2. Activa el plugin a través del menú **Plugins** en WordPress.
 3. Ve a **WooCommerce > Ajustes > Desistimiento** y configura:
 4.  * **General**: período de desistimiento, período de gracia, estados entregados
     * **Detalles del vendedor**: nombre, dirección, dirección de devolución, responsabilidad
       de costos de devolución
     * **Experiencia del cliente**: modo de consentimiento para bienes digitales, página
       de información de desistimiento
 5. En la sección **Experiencia del cliente** haz clic en **«Crear página de información
    de desistimiento»** para publicar una nota conforme a la UE Anexo I(A) y un formulario
    modelo Anexo I(B). La URL de la página se vincula automáticamente desde los correos
    de pedidos y la pantalla de visualización de pedidos de Mi Cuenta.
 6. Los clientes elegibles para desistirse verán una llamada a la acción **«Desistir
    del contrato aquí»** en su página de pedido. El formulario funciona sin JavaScript.

## FAQ

### ¿Funciona el plugin con el pago como invitado?

Sí. Crea una página de formulario de desistimiento dedicada desde WooCommerce > 
Ajustes > Desistimiento > Cliente (un clic). Coloca el código [buddypilot_withdrawal_guest_form]
en esa página. Los clientes invitados introducen su número de pedido y correo electrónico
de facturación; se envía un enlace seguro a la dirección de facturación. Al hacer
clic en el enlace se abre el formulario de desistimiento interactivo completo sin
necesidad de cuenta.

### ¿Procesa el plugin los reembolsos automáticamente?

La versión gratuita registra la declaración de desistimiento y cambia el estado 
del pedido a `wc-withdrawal`. El operador procesa el reembolso utilizando herramientas
nativas de WooCommerce. El reembolso automático de un clic construido a partir de
artículos declarados está disponible en el complemento Pro.

### ¿Qué NO hace el plugin?

El plugin registra las declaraciones de desistimiento como documentos legales y 
notifica tanto al cliente como al operador. No reembolsa dinero automáticamente,
ni verifica los envíos de devolución, ni aplica plazos de reembolso, ni gestiona
la contabilidad y el IVA. El operador de la tienda es responsable de procesar el
reembolso dentro del período legalmente exigido (14 días por defecto, configurable
en WooCommerce > Ajustes > Withdrawal > General).

### ¿Es este un plugin de devoluciones para WooCommerce?

Sí, en el sentido legal: gestiona las devoluciones de WooCommerce como desistimientos
de los consumidores de la UE. El cliente presenta una solicitud de devolución (una
declaración de desistimiento) mediante el formulario de devolución online, y el 
operador la resuelve desde la lista de declaraciones. No es una herramienta de mensajería
ni de logística RMA: no genera etiquetas de envío ni hace seguimiento de los paquetes
de devolución.

### ¿Sustituye a mi página de política de devoluciones?

No, la complementa. El plugin genera con un clic la página de información sobre 
el desistimiento exigida por la ley (Annex I(A)) y el modelo de formulario de desistimiento(
Annex I(B)); tu política de devoluciones y tus condiciones del servicio siguen siendo
tus propios documentos. Juntos cubren tanto el mínimo legal como las reglas prácticas
de tu tienda.

### ¿El plugin es compatible con productos variables?

Sí, sin necesidad de configuración adicional. Los productos variables (diferentes
tamaños, colores, etc.) son totalmente compatibles en la versión gratuita. Cada 
variante aparece en el formulario de desistimiento como una línea separada con sus
etiquetas de atributo completas (por ejemplo, Camiseta, Tamaño: L, Color: Negro),
por lo que el cliente especifica exactamente qué está devolviendo y el operador 
ve el mismo detalle en la lista de declaraciones y la página de detalle de la declaración.

### ¿El plugin funciona con WooCommerce Subscriptions o Product Bundles?

La gestión de suscripciones, paquetes y productos compuestos (cancelación de renovaciones,
prorrateo, modos de reembolso de paquetes) forma parte del complemento Pro. La versión
gratuita los trata como productos estándar.

### ¿Cubre el plugin el consentimiento del Article 16(m) para bienes digitales?

Sí. El plugin añade una casilla de consentimiento explícito en el pago cuando el
carrito contiene productos descargables o virtuales. El operador puede elegir entre«
obligatorio antes de la compra», «opcional» u «oculto» (el comerciante renuncia 
a la exclusión). El consentimiento se registra en el pedido y se muestra en el formulario
de desistimiento.

### ¿Cuándo empieza el periodo de desistimiento (el plazo de desistimiento)?

El contador comienza en el momento exacto en que el estado del pedido cambia a uno
de los estados «entregados» configurados en WooCommerce > Ajustes > Desistimiento
> General. El plugin registra la marca de tiempo exacta de ese cambio de estado.
Mientras el plazo no haya vencido, el cliente ve cuántos días le quedan en el formulario
de desistimiento; una vez que el plazo vence, el botón de desistimiento ya no se
muestra. Cualquier estado de pedido integrado o personalizado de WooCommerce se 
puede asignar como un disparador «entregado» (por ejemplo, «Completado», un estado«
Enviado» personalizado, etc.). Dejar la lista vacía significa que el contador nunca
comienza, lo cual es útil durante las pruebas o cuando deseas que el desistimiento
esté disponible indefinidamente.

### ¿El plugin es compatible con HPOS?

Sí. El plugin es totalmente compatible con WooCommerce High-Performance Order Storage(
HPOS) y vuelve automáticamente al modo heredado post-meta.

## Reseñas

![](https://secure.gravatar.com/avatar/33462b549ec1d62ff63b5d38e055b2701da2008b790b17c538c55131ce4bbec3?
s=60&d=retro&r=g)

### 󠀁[Works fine](https://wordpress.org/support/topic/works-fine-1669/)󠁿

 [Vini](https://profiles.wordpress.org/vinieaffini/) 27 de julio de 2026 1 respuesta

Everything looks fine.

![](https://secure.gravatar.com/avatar/16c4dd76ef26cf58c3b01192a611d5f14f411edb3e2f6a63d7fbcae6dc5d176c?
s=60&d=retro&r=g)

### 󠀁[Actually the best one](https://wordpress.org/support/topic/actually-the-best-one/)󠁿

 [Christian Violi](https://profiles.wordpress.org/albavin/) 19 de junio de 2026 
1 respuesta

I tried many solutions out there before to choose this plugin but I have to say 
that this is the most complete and best overall. It covers many aspects that other
ignores so this has been an easy choice

![](https://secure.gravatar.com/avatar/43bc6d96f7939cb9d5a2d04c4375800723e200619afb4ab98737a25fc3d3baff?
s=60&d=retro&r=g)

### 󠀁[odstapienia proste i przyjemne 🙂](https://wordpress.org/support/topic/odstapienia-proste-i-przyjemne/)󠁿

 [mwlandof](https://profiles.wordpress.org/mwlandof/) 17 de junio de 2026 1 respuesta

Swietna i prosta wtyczka zapewniajaca zgodnosc z dyrektywa. Doskonaly kontakt z 
devem i reakcja na bledy/poprawki. Wtyczka praktycznie plug&play. Zainstaluj, aktywuj,
sprawdz usatwienia gdybys chcial cos niestandarowego, podepnij shortcode i tyle…
Bardzo polecam!

![](https://secure.gravatar.com/avatar/f1558ed5b04101f0163d13a56026afd2f947f7fe6b7a3d0f513d811d88233812?
s=60&d=retro&r=g)

### 󠀁[Polecam!](https://wordpress.org/support/topic/polecam-66/)󠁿

 [woky](https://profiles.wordpress.org/woky/) 29 de mayo de 2026 1 respuesta

Bardzo dobra wtyczka. Rozwiązuje problem, który wiele sklepów będzie miało już niebawem.
Dobry kontakt z autorem. Będę ją polecał moim klientom.

 [ Leer todas las 4 reseñas ](https://wordpress.org/support/plugin/buddypilot-withdrawal/reviews/)

## Colaboradores y desarrolladores

«BuddyPilot Withdrawal – Easy Returns for WooCommerce» es un software de código 
abierto. Las siguientes personas han colaborado con este plugin.

Colaboradores

 *   [ BuddyPilot ](https://profiles.wordpress.org/buddypilot/)
 *   [ Dominik Kawula ](https://profiles.wordpress.org/domkawula/)

«BuddyPilot Withdrawal – Easy Returns for WooCommerce» está traducido en 8 idiomas.
Gracias a [los traductores](https://translate.wordpress.org/projects/wp-plugins/buddypilot-withdrawal/contributors)
por sus contribuciones.

[Traduce «BuddyPilot Withdrawal – Easy Returns for WooCommerce» a tu idioma.](https://translate.wordpress.org/projects/wp-plugins/buddypilot-withdrawal)

### ¿Interesado en el desarrollo?

[Revisa el código](https://plugins.trac.wordpress.org/browser/buddypilot-withdrawal/),
echa un vistazo al [repositorio SVN](https://plugins.svn.wordpress.org/buddypilot-withdrawal/)
o suscríbete al [registro de desarrollo](https://plugins.trac.wordpress.org/log/buddypilot-withdrawal/)
por [RSS](https://plugins.trac.wordpress.org/log/buddypilot-withdrawal/?limit=100&mode=stop_on_copy&format=rss).

## Registro de cambios

#### 1.0.22

 * Fix: You can no longer select the same page as both the withdrawal information
   page and the guest form page, a mix-up that left the guest form empty.
 * Tested with WordPress 7.1 and WooCommerce 11.0.1.

#### 1.0.21

 * Corrección: El enlace de desistimiento vuelve a aparecer en el pie de página 
   de tus correos electrónicos de WooCommerce en tiendas donde esos correos los 
   genera un plugin que sustituye las plantillas de correo electrónico de WooCommerce.
   MailPoet hace esto cuando su personalizador de correos electrónicos de WooCommerce
   está activado, y el enlace desaparecía silenciosamente de todos los correos electrónicos.
   El enlace es obligatorio por ley, así que ahora se añade al correo electrónico
   final siempre que no haya sobrevivido en la plantilla.
 * Corrección: El botón «Enviar formulario de retirada en línea» de la página de
   información sobre el desistimiento podía resultar ilegible en temas que colorean
   los enlaces dentro del contenido de la página con el mismo tono que el fondo 
   del botón: la etiqueta tomaba el color del enlace y desaparecía dentro del botón.
   La misma corrección se aplica a los botones Atrás de la página de confirmación
   y en Mi cuenta.
 * Nuevo: El ajuste «Enlace en los correos electrónicos» desactiva el enlace de 
   desistimiento automático en los correos electrónicos de WooCommerce. Úsalo si
   añades tú mismo el enlace en tus correos electrónicos, por ejemplo mediante un
   plugin de diseño de correos electrónicos, y no quieres que aparezca dos veces.

#### 1.0.20

 * Nuevo: Enlace de desistimiento en todo el sitio. Un enlace discreto en el pie
   de página de cada página (más un botón fijo opcional) lleva a los clientes a 
   la función de desistimiento desde cualquier parte de la tienda, no solo desde
   Mi cuenta, en el espíritu del Article 11a of EU Directive 2023/2673. Hay disponible
   un shortcode [buddypilot_withdrawal_link] para colocarlo manualmente. El enlace
   del pie de página está activado en las instalaciones nuevas y permanece desactivado
   en los sitios existentes hasta que lo actives.
 * Nuevo: Acceso directo opcional para invitados. Ahora puedes permitir que los 
   invitados lleguen al formulario de desistimiento inmediatamente después de introducir
   su número de pedido y su correo electrónico, sin el enlace de acceso enviado 
   por correo. El enlace de acceso sigue siendo obligatorio por defecto.
 * Corrección: Las opciones exclusivas de Pro en la pantalla de ajustes ahora aparecen
   sin marcar en el plugin gratuito, de modo que ya no parecen activadas.
 * Desarrollador: Se actualizó la plantilla de traducción (.pot) y la traducción
   al polaco.

#### 1.0.19

 * Corrección: Las cadenas añadidas recientemente ya no aparecen en inglés en sitios
   sin un paquete de idioma actualizado. Las traducciones incluidas se actualizaron
   y ampliaron para que cada idioma de la UE compatible se distribuya ahora con 
   la versión actual del plugin. Las traducciones de la comunidad del paquete de
   idioma de translate.wordpress.org siguen teniendo prioridad; la copia incluida
   solo completa lo que le falta al paquete.
 * Desarrollador: La plantilla de traducción (.pot) ahora se incluye en el paquete,
   de modo que puedes traducir el plugin tú mismo (por ejemplo con Loco Translate)
   y mantener coherente un sitio multilingüe. Sin cambios en el código ni en la 
   base de datos, seguro de actualizar.

#### 1.0.18

 * Función: El coste de entrega original ahora se reembolsa cuando el cliente desiste
   de todos los artículos enviados de un pedido (Article 13). El importe se muestra
   al cliente en el paso de confirmación y en Mi cuenta, y se añade al reembolso
   con un clic de Pro. La entrega se sigue incluyendo cuando en el pedido solo quedan
   artículos virtuales o descargables; no se añade en una devolución parcial de 
   los bienes físicos. Un nuevo ajuste «Refund the original delivery cost» (activado
   por defecto) controla esto.
 * Mejora: Los importes que ve el cliente ahora se muestran con impuestos incluidos(
   brutos). El paso de confirmación y la vista de la declaración en Mi cuenta ahora
   muestran un resumen del reembolso: artículos, entrega y el total a reembolsar.
 * Mejora: Después de presentar un desistimiento que incluye bienes físicos, ahora
   se recuerda al cliente en la página de confirmación que devuelva los bienes al
   vendedor.
 * Mejora: Las pantallas de declaración del operador ahora muestran los artículos
   objeto de desistimiento con la conocida disposición de artículos del pedido de
   WooCommerce (Producto, Precio, Cantidad, Total, impuestos) con un resumen de 
   totales (subtotal de artículos, envío, impuestos, total a reembolsar).
 * Mejora: El ajuste «Cost of returning the goods» se renombró a «Who pays to return
   the goods» y se reformuló para dejar claro que se refiere al coste de devolver
   los bienes, no al reembolso de la entrega original.
 * Developer: New `buddypilot_withdrawal_shipping_refund_snapshot` filter to adjust
   or suppress the delivery refund amount (for example to cap an express-delivery
   supplement). The public API version is now 1.1.

#### 1.0.17

 * Mejora: La página del pedido de Mi cuenta ahora lista cada artículo con su estado
   de desistimiento, con derecho, ya desistido o sin derecho, encima del botón de
   desistimiento. Los artículos digitales que el cliente consintió recibir de inmediato(
   Article 16(m)) se muestran con una insignia de «sin derecho a desistimiento» 
   en lugar de omitirse en silencio, y los pedidos en los que ningún artículo tiene
   derecho ahora muestran la lista de artículos con esa explicación en lugar de 
   un mensaje genérico.
 * Mejora: El formulario de desistimiento muestra la misma lista de artículos de
   solo lectura con insignias cuando un pedido no tiene artículos con derecho a 
   desistimiento.
 * Mejora: Las traducciones incluidas ahora completan las cadenas que aún le faltan
   al paquete de idioma de translate.wordpress.org, de modo que las cadenas añadidas
   en una versión aparecen en el idioma del sitio de inmediato sin esperar a que
   se actualice el paquete de idioma. Las traducciones de la comunidad del paquete
   de idioma mantienen la prioridad.
 * Corregido: El correo de rechazo o resolución parcial ya no muestra dos avisos
   casi idénticos de ADR / Resolución de Litigios en Línea de la UE. Se conserva
   el aviso con el enlace en el que se puede hacer clic; se eliminó el texto por
   defecto duplicado.

#### 1.0.16

 * Corregido: El enlace «derecho de desistimiento» en el pie de página de los correos
   de WooCommerce y la llamada a la acción de Mi cuenta ahora apuntan a la versión
   en el idioma correcto de la página de información en sitios con Polylang y WPML.
   Antes se usaba el ID de página guardado de forma literal, por lo que en tiendas
   multilingües el enlace podía faltar o apuntar al idioma equivocado.
 * Corregido: El periodo de desistimiento y el plazo de reembolso ahora se muestran
   de forma coherente en todas las pantallas. El botón del pedido de Mi cuenta ahora
   refleja el periodo de desistimiento configurado en lugar de unos 14 días fijos
   en el código, y la vista previa de la declaración y la confirmación posterior
   al envío ahora reflejan el plazo de reembolso configurado en lugar de un valor
   fijo en el código o del ajuste equivocado.
 * Corregido: El flujo de desistimiento para invitados ahora se mantiene en el idioma
   que usa el visitante en sitios multilingües. Antes, tras solicitar un enlace 
   de acceso en una página de idioma no predeterminado, la acción del formulario,
   cada paso siguiente y los correos electrónicos volvían al idioma predeterminado
   del sitio. El formulario ahora reconoce las variantes de página traducidas, mantiene
   cada paso en la página del idioma actual y envía tanto el correo electrónico 
   del enlace mágico como el correo electrónico de confirmación del desistimiento
   en el idioma del visitante (Polylang, WPML). El correo electrónico de confirmación
   ahora también sigue el idioma del cliente en los envíos con sesión iniciada en
   Mi cuenta; las declaraciones registradas por el operador mantienen el idioma 
   del sitio.
 * Mejora: La opción del plazo de reembolso ahora se establece al activar, de modo
   que las instalaciones nuevas informan de un valor coherente antes de que el operador
   visite la pantalla de ajustes.

#### 1.0.15

 * Función: Los correos con enlace mágico para invitados ahora apuntan a la versión
   en el idioma correcto del formulario de desistimiento en sitios multilingües.
   Polylang, WPML, TranslatePress, Weglot y qTranslate-XT son compatibles automáticamente;
   el meta de idioma del pedido guardado por cada plugin se usa para resolver la
   URL de la página traducida.
 * Mejora: Los archivos de traducción .mo de los 24 idiomas oficiales de la UE ahora
   se incluyen en el ZIP del plugin como alternativa. Los usuarios de sitios donde
   translate.wordpress.org aún no ha publicado un paquete de idioma reciben las 
   cadenas traducidas de los archivos .mo incluidos en lugar de recurrir al inglés.
 * Mejora: Las traducciones al checo (cs_CZ), croata (hr), neerlandés de Bélgica(
   nl_BE), neerlandés de los Países Bajos (nl_NL) y rumano (ro_RO) se sincronizaron
   con GlotPress (translate.wordpress.org); las cadenas aprobadas en GlotPress ahora
   son las de referencia.

#### 1.0.14

 * Feature: New `buddypilot_withdrawal_has_consent` filter allows third-party plugins
   to integrate their own Article 16(m) consent checkbox. Return `true` from the
   filter to record consent for all digital items in the order; the plugin handles
   the internal storage. No knowledge of internal meta keys is required.
 * Improved: When the plugin’s own consent checkbox is set to «Hidden» in settings,
   the new filter still fires. External consent can therefore be recorded even when
   the built-in checkbox is disabled.

#### 1.0.13

 * Nueva función: Los operadores ahora pueden cerrar una declaración como «Rechazar
   todos los artículos» o «Resolución parcial» directamente desde la página de detalle
   de la declaración. Anteriormente, desde esa pantalla solo estaba disponible la
   aceptación total.
 * Nueva función: El modo de resolución parcial permite tomar una decisión de aceptación
   o rechazo por artículo, con un motivo de rechazo obligatorio para cada artículo
   rechazado, de modo que el cliente recibe un resultado detallado en lugar de una
   única decisión global.
 * Nueva función: Los correos electrónicos de rechazo y resolución parcial incluyen
   ahora el enlace a la plataforma ODR (Resolución de Litigios en Línea) de la UE(
   ec.europa.eu/consumers/odr), tal como exige el Article 11a para las notificaciones
   de litigios transfronterizos.
 * Nueva función: El formulario de desistimiento visible para el cliente muestra
   ahora distintivos de resolución por artículo en las declaraciones totalmente 
   resueltas: los artículos aceptados muestran un distintivo de confirmación, mientras
   que los rechazados muestran el motivo del rechazo y un enlace a la plataforma
   ODR. Anteriormente, el formulario mostraba un mensaje genérico de «pedido no 
   admisible».
 * Mejora: Al reabrir una declaración ahora se restablecen a nulo el tipo de resolución
   y la nota del operador, de modo que el operador parte de cero al corregir una
   decisión errónea.
 * Seguridad: Los campos de instantánea financiera del registro de declaración (
   total del artículo, subtotal, impuesto) son inmutables; no pueden sobrescribirse
   mediante la manipulación de POST durante el paso de resolución.
 * Seguridad: El tipo de resolución se valida contra una lista blanca estricta en
   el servidor (accepted / rejected / partial); los valores arbitrarios se rechazan
   antes de llegar a la base de datos.
 * Seguridad: Las declaraciones ya cerradas rechazan los intentos de resolución 
   obsoletos con un error explícito, evitando sobrescrituras accidentales en sesiones
   de operador simultáneas.

#### 1.0.12

 * Corrección: La casilla de consentimiento del Article 16(m) no se mostraba en 
   el pago en tiendas que usaban WooCommerce 8.6 o superior con un pago clásico 
   basado en shortcodes (p. ej. tema Blocksy). El plugin ahora detecta correctamente
   si se utiliza el pago por bloques antes de enrutar la recogida del consentimiento
   a través de la API Additional Checkout Fields.
 * Mejora: La sesión de desistimiento de invitado ahora está limitada a 15 minutos
   después de hacer clic en el enlace mágico, reduciendo el período durante el cual
   una sesión de navegador compartida o inactiva podría ser utilizada de forma indebida.
 * Mejora: El endpoint de canje del enlace mágico aplica ahora limitación de velocidad
   por pedido y por IP, de forma coherente con el endpoint de verificación de correo
   electrónico.
 * Mejora: El detalle de declaración y el botón de cambio de estado en el panel 
   de administración ahora verifican que el usuario actual tenga acceso al pedido
   vinculado, lo que proporciona un control de acceso correcto en configuraciones
   multiventa.
 * Mejora: El texto de la etiqueta de consentimiento personalizado por el operador
   se sanea al guardarse, de modo que el valor de la opción almacenada siempre es
   HTML limpio.
 * Mejora: El plugin ya no recopila ni almacena la cadena user-agent del navegador
   con las declaraciones de desistimiento. El campo no tenía ningún propósito activo
   y su eliminación reduce la huella de datos personales. En las instalaciones existentes,
   la columna se eliminará automáticamente en la primera carga después de la actualización(
   sin pérdida de datos; el registro legal de declaración se conserva íntegramente).

#### 1.0.11

 * Corrección: El registro de clases de correo electrónico del plugin ahora está
   aislado por clase. Un fallo del constructor en una clase ya no se propaga al 
   despacho de correo electrónico de WooCommerce y ya no bloquea todos los correos
   electrónicos transaccionales de WooCommerce (nuevo pedido, procesamiento de cliente,
   etc.).

#### 1.0.10

 * Corrección: Intentar cambiar masivamente el estado de pedidos en estado de desistimiento
   a Completado o En procesamiento ahora activa un aviso de administrador que informa
   al operador de cuántos pedidos se omitieron porque el cambio de estado no está
   permitido para ellos, y de que esos pedidos deben gestionarse individualmente.

#### 1.0.9

 * Nueva función: El formulario de verificación de invitados ahora acepta números
   de pedido personalizados de plugins de renumeración de terceros (p. ej. WebToffee
   Advanced Order Numbers, Custom Order Numbers for WooCommerce by Tyche Softwares).
   Los invitados pueden introducir el número formateado que aparece en su correo
   electrónico de confirmación en lugar del ID de pedido numérico interno.
 * Nueva función: El campo de número de pedido en el formulario de verificación 
   de invitados ya no fuerza un teclado solo numérico en dispositivos móviles, lo
   que permite a los invitados escribir números de pedido con prefijo como ORD-2024-
   1042.
 * Seguridad: La longitud de la entrada en el formulario de verificación de invitados
   ahora está limitada antes de la resolución del pedido, evitando que solicitudes
   manipuladas provoquen escaneos completos de la base de datos en tiendas con plugins
   de números de pedido personalizados instalados.

#### 1.0.8

 * Nueva función: La página de información sobre desistimiento ahora se crea como
   bloques nativos de WordPress, lo que permite al operador editar libremente el
   texto legal directamente en el editor de bloques.
 * Nueva función: El nuevo shortcode [buddypilot_withdrawal_info_block] renderiza
   las secciones dinámicas (datos de contacto del comerciante, dirección de devolución,
   botón CTA) de forma independiente para que siempre reflejen la configuración 
   actual, incluso tras ediciones manuales del texto circundante.
 * Característica: El nuevo botón «Sobrescribir contenido de página de información»
   en WooCommerce > Ajustes > Desistimiento > Cliente actualiza la página con la
   última redacción de aviso modelo en cualquier momento.
 * Corrección: Los pedidos importados a través de la API REST de WooCommerce (p.
   ej. BaseLinker) se reimportaban en bucle porque el plugin escribía metadatos 
   de consentimiento innecesarios en cada nuevo pedido. El plugin ya no escribe 
   ningún metadato en los pedidos creados por la API que no contengan artículos 
   digitales.

#### 1.0.7

 * Mejora: El seguimiento de entregas ahora utiliza una tabla de base de datos dedicada
   en lugar de metadatos del pedido, lo que evita que las integraciones de sincronización
   de pedidos de terceros (p. ej. BaseLinker) reimporte los pedidos en cada actualización
   del estado de entrega.
 * Mejora: La pantalla de confirmación ahora lee el período de desistimiento configurado
   de forma dinámica en lugar de utilizar un valor fijo.
 * Mejora: La limitación de velocidad ahora se gestiona con una única operación 
   atómica en la base de datos.
 * Mejora: Se han reducido las consultas a la base de datos en la página de lista
   de desistimientos.
 * Corrección: Varios problemas de estándares de código y refuerzo de seguridad 
   menor.

#### 1.0.6

 * Nueva función: Los clientes invitados (no registrados) ahora pueden enviar una
   declaración de desistimiento directamente desde una página de formulario dedicada.
   Tras introducir su número de pedido y su correo electrónico de facturación, se
   envía un enlace mágico seguro de un solo uso a la dirección de facturación; al
   hacer clic en él se abre el formulario de desistimiento interactivo completo 
   sin necesidad de cuenta.
 * Característica: nuevo shortcode `[buddypilot_withdrawal_guest_form]` para la 
   página del formulario de desistimiento de invitado. La página y el código corto
   se pueden crear con un clic desde WooCommerce > Ajustes > Desistimiento > Cliente.
 * Característica: el shortcode `[buddypilot_withdrawal_information]` ahora muestra
   un botón de llamada a la acción «Enviar formulario de desistimiento en línea»
   opcional que enlaza a la página del formulario de invitado cuando se configura
   la página del formulario. Las páginas de información existentes no se modifican.
 * Característica: nuevo correo transaccional «Enlace de acceso a formulario de 
   desistimiento (invitado)» que contiene el enlace seguro; configurable en WooCommerce
   > Ajustes > Correos.

#### 1.0.5

 * El plugin ha sido renombrado a BuddyPilot Withdrawal (Easy Returns) para mejorar
   su visibilidad.
 * Se han añadido traducciones completas para los 24 idiomas oficiales de la UE:
   bg, cs, da, de (de_DE, de_AT, de_CH), el, es, et, fi, fr (fr_FR, fr_BE, fr_CH),
   ga, hr, hu, it, lt, lv, mt, nl (nl_NL, nl_BE), pl, pt, ro, sk, sl, sv.
 * Calidad de la traducción: todos los 24 archivos de idiomas de la UE auditados
   en tres rondas; terminología legal verificada contra los boletines oficiales 
   nacionales (Directiva UE 2011/83/UE Anexo I), signos diacríticos restaurados,
   registro formal aplicado en todo momento, formas plurales corregidas y coherencia
   interna mejorada.

#### 1.0.4

 * Nueva función: Las cantidades fraccionarias de productos ahora se detectan y 
   notifican en la declaración de desistimiento. El manejo completo de cantidades
   fraccionarias (prorrateo correcto, cálculo de reembolso) está disponible en BuddyPilot
   Withdrawal Pro.
 * Nueva función: Se ha añadido el enlace de acción «Actualizar a Pro» en la lista
   de Plugins, que se muestra solo cuando la versión Pro no está activa.

#### 1.0.3

 * Probado y confirmada la compatibilidad con WordPress 7.0.
 * Seguridad: El nonce ahora se verifica antes de consumir un slot de limitación
   de velocidad, evitando que los sondeos CSRF agoten el presupuesto por hora de
   un usuario.
 * Seguridad: los depósitos de límite de velocidad anónimos (invitado) ahora se 
   limitan por IP hash en lugar de un depósito `user_id=0` compartido.
 * Seguridad: `sealed_map` e IDs preselados GET se validan contra el pedido antes
   del uso, evitando que solicitudes manipuladas adjunten confirmaciones selladas
   a artículos ordinarios.
 * Seguridad: la salida de `apply_filters('buddypilot_withdrawal_declaration_items_payload')`
   se revalida: las entradas con `item_id=0`, cantidades negativas o valores que
   no son matrices se eliminan.
 * Seguridad: `PermissionChecker` ahora bloquea explícitamente `user_id=0` independientemente
   del `customer_id` del pedido.
 * Seguridad: `OperatorRegistration` comprueba `EXCLUDED_STATUSES` en la entrada
   del manejador y vacía la caché de permisos después de guardar el pedido.
 * Seguridad: `DeclarationRepository` valida el formato `filing_date` y rechaza 
   cadenas de fecha cero.
 * Seguridad: `RateLimit::tally()` devuelve `PHP_INT_MAX` cuando falta la tabla 
   de límite de velocidad, evitando que el limitador se convierta silenciosamente
   en una no-operación.
 * Solución: `round(qty, 10)` en `get_declared_quantities()` previene la acumulación
   de épsilon IEEE-754 en cantidades de productos fraccionarios.
 * Solución: se eliminó el gancho `user_register` espurio del Privacy Manager; solo
   se usa `woocommerce_created_customer`.

#### 1.0.2

 * Código: se renombraron todos los identificadores cortos `bpw_` / `bpw-` al prefijo
   completo `buddypilot_withdrawal_` / `buddypilot-withdrawal-` en todo: afecta 
   nombres de acciones AJAX/admin-post, identificadores de scripts, objeto JS localizado,
   ID de metabox, tipo de campo WooCommerce, nombres de campo nonce, claves de bloqueo
   y parámetros GET. Resuelve el requisito de revisión de prefijo único de WordPress.
   org.

#### 1.0.1

 * Seguridad: Todos los manejadores de solicitudes de administrador y AJAX ahora
   verifican los permisos de usuario antes de la verificación del nonce, de acuerdo
   con las directrices de seguridad de WordPress.
 * Seguridad: la ruta AJAX en el manejador de registro del operador ahora usa `check_ajax_referer()`
   en lugar de `check_admin_referer()`, devolviendo una respuesta de error AJAX 
   adecuada en caso de fallo de nonce.
 * Seguridad: se añadió la puerta `current_user_can()` al manejador de notificación
   del administrador para el estado de creación de página de información.
 * Seguridad: Los valores del símbolo de moneda y del separador de los datos de 
   formato de precio localizado ahora se escapan en el lado de JavaScript antes 
   de insertarse en el DOM.
 * Código: se movió JavaScript en línea de la plantilla de registro del operador
   a un archivo encolado (`assets/js/admin/operator-registration.js`); cadenas pasadas
   a través de `wp_localize_script()`.
 * Código: se eliminó la llamada a `load_plugin_textdomain()`; WordPress 4.6 y posterior
   carga traducciones automáticamente para plugins alojados en WordPress.org.

#### 1.0.0

 * Primera versión estable. Implementación completa de la función de desistimiento
   del Article 11a: formulario de dos pasos, verificación de invitados, registro
   manual del operador, lista de administración de declaraciones, período configurable
   y estados de entrega, captura de consentimiento del Article 16(m), generador 
   de páginas Annex I(A)/(B), correos electrónicos para clientes y administradores,
   historial de desistimientos en Mi cuenta, compatibilidad con HPOS, hooks GDPR,
   cumplimiento WCAG 2.2 AA, y traducciones al polaco y al inglés.

## Meta

 *  Versión **1.0.22**
 *  Última actualización **hace 2 meses**
 *  Instalaciones activas **300+**
 *  Versión de WordPress ** 5.8 o superior **
 *  Probado hasta **7.1.3**
 *  Versión de PHP ** 7.4 o superior **
 *  Idiomas
 * [Croatian](https://hr.wordpress.org/plugins/buddypilot-withdrawal/), [Czech](https://cs.wordpress.org/plugins/buddypilot-withdrawal/),
   [Dutch](https://nl.wordpress.org/plugins/buddypilot-withdrawal/), [Dutch (Belgium)](https://nl-be.wordpress.org/plugins/buddypilot-withdrawal/),
   [English (US)](https://wordpress.org/plugins/buddypilot-withdrawal/), [Polish](https://pl.wordpress.org/plugins/buddypilot-withdrawal/),
   [Romanian](https://ro.wordpress.org/plugins/buddypilot-withdrawal/), [Spanish (Chile)](https://cl.wordpress.org/plugins/buddypilot-withdrawal/)
   y [Spanish (Spain)](https://es.wordpress.org/plugins/buddypilot-withdrawal/).
 *  [Traducir a tu idioma](https://translate.wordpress.org/projects/wp-plugins/buddypilot-withdrawal)
 * Etiquetas:
 * [returns](https://es.wordpress.org/plugins/tags/returns/)[right of withdrawal](https://es.wordpress.org/plugins/tags/right-of-withdrawal/)
   [withdrawal button](https://es.wordpress.org/plugins/tags/withdrawal-button/)
 *  [Vista avanzada](https://es.wordpress.org/plugins/buddypilot-withdrawal/advanced/)

## Valoraciones

 5 de 5 estrellas.

 *  [  4 valoraciones de 5 estrellas     ](https://wordpress.org/support/plugin/buddypilot-withdrawal/reviews/?filter=5)
 *  [  0 valoraciones de 4 estrellas     ](https://wordpress.org/support/plugin/buddypilot-withdrawal/reviews/?filter=4)
 *  [  0 valoraciones de 3 estrellas     ](https://wordpress.org/support/plugin/buddypilot-withdrawal/reviews/?filter=3)
 *  [  0 valoraciones de 2 estrellas     ](https://wordpress.org/support/plugin/buddypilot-withdrawal/reviews/?filter=2)
 *  [  0 valoraciones de 1 estrellas     ](https://wordpress.org/support/plugin/buddypilot-withdrawal/reviews/?filter=1)

[Tu valoración](https://wordpress.org/support/plugin/buddypilot-withdrawal/reviews/#new-post)

[Ver todas las reseñas](https://wordpress.org/support/plugin/buddypilot-withdrawal/reviews/)

## Colaboradores

 *   [ BuddyPilot ](https://profiles.wordpress.org/buddypilot/)
 *   [ Dominik Kawula ](https://profiles.wordpress.org/domkawula/)

## Soporte

Problemas resueltos en los últimos dos meses:

     1 de 1

 [Ver el foro de soporte](https://wordpress.org/support/plugin/buddypilot-withdrawal/)