Title: BuddyPilot Withdrawal (Easy Returns)
Author: BuddyPilot
Published: <strong>20 de mayo de 2026</strong>
Last modified: 30 de junio 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)

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

[Descargar](https://downloads.wordpress.org/plugin/buddypilot-withdrawal.1.0.19.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 para WooCommerce** implementa la función de desistimiento
obligatoria requerida por el **Artículo 11a de la Directiva UE 2023/2673** para 
vendedores en línea que venden a consumidores de la UE.

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.

#### 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).

### ¿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 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/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 3 reseñas ](https://wordpress.org/support/plugin/buddypilot-withdrawal/reviews/)

## Colaboradores y desarrolladores

«BuddyPilot Withdrawal (Easy Returns)» 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)» está traducido en 7 idiomas. Gracias a [los traductores](https://translate.wordpress.org/projects/wp-plugins/buddypilot-withdrawal/contributors)
por sus contribuciones.

[Traduce «BuddyPilot Withdrawal (Easy Returns)» 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.19

 * Fix: Recently added strings no longer appear in English on sites without an up-
   to-date language pack. The bundled translations were refreshed and expanded so
   every supported EU language now ships at the current plugin version. Community
   translations from the translate.wordpress.org language pack still take priority;
   the bundled copy only fills what the pack is missing.
 * Developer: The translation template (.pot) is now included in the package, so
   you can translate the plugin yourself (for example with Loco Translate) and keep
   a multilingual site consistent. No code or database changes, safe to update.

#### 1.0.18

 * Feature: The original delivery cost is now refunded when the customer withdraws
   from every shipped item in an order (Article 13). The amount is shown to the 
   customer on the confirmation step and in My Account, and is added to the Pro 
   one-click refund. Delivery is still included when only virtual or downloadable
   items remain in the order; it is not added on a partial return of the physical
   goods. A new «Refund the original delivery cost» setting (on by default) controls
   this.
 * Improved: Customer-facing amounts are now shown gross (tax inclusive). The confirmation
   step and the My Account declaration view now show a refund summary: items, delivery,
   and the total to refund.
 * Improved: After submitting a withdrawal that includes physical goods, the customer
   is now reminded on the confirmation page to send the goods back to the seller.
 * Improved: The operator declaration screens now show the withdrawn items in WooCommerce’s
   familiar order-items layout (Product, Price, Quantity, Total, tax) with a totals
   summary (items subtotal, shipping, tax, total to refund).
 * Improved: The «Cost of returning the goods» setting was renamed to «Who pays 
   to return the goods» and reworded to make clear it concerns the cost of sending
   the goods back, not the refund of the original delivery.
 * 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

 * Improved: The My Account order page now lists every item with its withdrawal 
   status, eligible, already withdrawn, or not eligible, above the withdrawal button.
   Digital items the customer consented to receive immediately (Article 16(m)) are
   shown with a «not eligible for withdrawal» badge instead of being silently omitted,
   and orders where no item is eligible now show the item list with that explanation
   instead of a generic message.
 * Improved: The withdrawal form shows the same read-only item list with badges 
   when an order has no items eligible for withdrawal.
 * Improved: Bundled translations now fill any strings the translate.wordpress.org
   language pack is still missing, so strings added in a release appear in the site
   language immediately without waiting for the language pack to be updated. Community
   translations from the language pack keep priority.
 * Fixed: The rejection / partial-resolution email no longer shows two near-identical
   ADR / EU Online Dispute Resolution notices. The notice with the clickable link
   is kept; the duplicate default text was removed.

#### 1.0.16

 * Fixed: The «right of withdrawal» link in the WooCommerce email footer and the
   My Account call-to-action now resolve to the correct language version of the 
   information page on Polylang and WPML sites. Previously the stored page ID was
   used verbatim, so on multilingual stores the link could be missing or point to
   the wrong language.
 * Fixed: The withdrawal period and the refund deadline are now shown consistently
   across all screens. The My Account order button now reflects the configured withdrawal
   period instead of a hardcoded 14 days, the declaration preview and the post-submission
   confirmation now reflect the configured refund deadline instead of a hardcoded
   value or the wrong setting.
 * Fixed: The guest withdrawal flow now stays in the language the visitor is using
   on multilingual sites. Previously, after requesting an access link on a non-default
   language page, the form action, every following step and the e-mails fell back
   to the site default language. The form now recognises translated page variants,
   keeps each step on the current-language page, and sends both the magic-link e-
   mail and the withdrawal-confirmation e-mail in the visitor’s language (Polylang,
   WPML). The confirmation e-mail now also follows the customer’s language for logged-
   in My Account submissions; operator-registered declarations keep the site language.
 * Improved: The refund deadline option is now seeded on activation, so fresh installations
   report a consistent value before the operator visits the settings screen.

#### 1.0.15

 * Feature: Guest magic-link emails now point to the correct language version of
   the withdrawal form on multilingual sites. Polylang, WPML, TranslatePress, Weglot,
   and qTranslate-XT are all supported automatically; the order language meta stored
   by each plugin is used to resolve the translated page URL.
 * Improved: Translation .mo files for all 24 EU official languages are now bundled
   in the plugin ZIP as a fallback. Users on sites where translate.wordpress.org
   has not yet published a language pack receive translated strings from the bundled.
   mo files instead of falling back to English.
 * Improved: Czech (cs_CZ), Croatian (hr), Dutch Belgium (nl_BE), Dutch Netherlands(
   nl_NL), and Romanian (ro_RO) translations synchronised with GlotPress (translate.
   wordpress.org); GlotPress-approved strings are now authoritative.

#### 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.19**
 *  Última actualización **hace 1 semana**
 *  Instalaciones activas **100+**
 *  Versión de WordPress ** 5.8 o superior **
 *  Probado hasta **7.0**
 *  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/) y [Spanish (Spain)](https://es.wordpress.org/plugins/buddypilot-withdrawal/).
 *  [Traducir a tu idioma](https://translate.wordpress.org/projects/wp-plugins/buddypilot-withdrawal)
 * Etiquetas:
 * [compliance](https://es.wordpress.org/plugins/tags/compliance/)[eu](https://es.wordpress.org/plugins/tags/eu/)
   [right of withdrawal](https://es.wordpress.org/plugins/tags/right-of-withdrawal/)
   [withdrawal](https://es.wordpress.org/plugins/tags/withdrawal/)[woocommerce](https://es.wordpress.org/plugins/tags/woocommerce/)
 *  [Vista avanzada](https://es.wordpress.org/plugins/buddypilot-withdrawal/advanced/)

## Valoraciones

 5 de 5 estrellas.

 *  [  3 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)

[Your review](https://wordpress.org/support/plugin/buddypilot-withdrawal/reviews/#new-post)

[Ver todas las valoraciones](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:

     2 de 2

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