Se dispara después de que la pasarela principal de Redsys (redirección / tarjeta de crédito) haya confirmado un pago correcto y el pedido se haya marcado como pagado. Úsalo para desencadenar la preparación del pedido, sincronizar sistemas externos o enviar notificaciones personalizadas una vez que el pago es definitivo. Se dispara desde muchas rutas de código (pago estándar, pago tokenizado, captura de preautorización, suscripciones, etc.).
Parámetros
Nombre
Tipo
Descripcion
$order_id
int
El id de pedido de WooCommerce ($order->get_id()).
Fuente: classes/class-wc-gateway-redsys.php:3699 (y muchas otras ubicaciones en el mismo archivo).
PHP
add_action( 'redsys_post_payment_complete', 'my_redsys_payment_complete', 10, 1 );
function my_redsys_payment_complete( $order_id ) {
$order = wc_get_order( $order_id );
// Trigger your own fulfilment / CRM sync here.
error_log( 'Redsys payment complete for order ' . $order_id );
}
redsys_post_payment_errorAction
Se dispara cada vez que la pasarela de Redsys aborta o rechaza un pago (firma no coincidente, transacción denegada, tarjeta bloqueada, autorización ausente, etc.). El segundo argumento contiene el mensaje o motivo del error. Úsalo para alertas, registro en un monitor externo o flujos de recuperación personalizados.
Parámetros
Nombre
Tipo
Descripcion
$order_id
int
El id de pedido de WooCommerce.
$error
string
Un mensaje o motivo de error legible que describe el fallo.
Fuente: classes/class-wc-gateway-redsys.php:3357 (y muchas otras ubicaciones en las clases de pasarela).
PHP
add_action( 'redsys_post_payment_error', 'my_redsys_payment_error', 10, 2 );
function my_redsys_payment_error( $order_id, $error ) {
error_log( sprintf( 'Redsys error on order %d: %s', $order_id, $error ) );
}
redsys_post_authorizationAction
Se dispara después de que se confirme una preautorización (retención solo de autorización) para un pedido, antes de capturar los fondos. Úsalo para reaccionar a autorizaciones retenidas, por ejemplo para registrar el importe reservado o avisar al personal de que hay una captura pendiente.
Parámetros
Nombre
Tipo
Descripcion
$order_id
int
El id de pedido de WooCommerce.
$amount
mixed
El importe autorizado.
Fuente: classes/class-wc-gateway-redsys.php:9076.
PHP
add_action( 'redsys_post_authorization', 'my_redsys_authorization', 10, 2 );
function my_redsys_authorization( $order_id, $amount ) {
error_log( sprintf( 'Authorization held for order %d, amount %s', $order_id, $amount ) );
}
redsys_post_refundAction
Se dispara después de que un reembolso se haya procesado correctamente a través de Redsys para un pedido. Úsalo para mantener sincronizados los sistemas externos de contabilidad o ERP con los reembolsos emitidos desde WooCommerce.
Parámetros
Nombre
Tipo
Descripcion
$order_id
int
El id de pedido de WooCommerce.
$amount
mixed
El importe reembolsado.
$reason
string
El motivo del reembolso tal como se introdujo en WooCommerce.
Fuente: classes/class-wc-gateway-redsys.php:9786.
PHP
add_action( 'redsys_post_refund', 'my_redsys_refund', 10, 3 );
function my_redsys_refund( $order_id, $amount, $reason ) {
error_log( sprintf( 'Refunded %s on order %d (%s)', $amount, $order_id, $reason ) );
}
{gateway_id}_post_payment_completeAction
Equivalente por pasarela de redsys_post_payment_complete. Cada pasarela sin redirección dispara su propia action para que puedas engancharte solo al método de pago que te interese. El nombre del hook se construye a partir del id de la pasarela, por ejemplo bizum_post_payment_complete o insite_post_payment_complete.
Nombres de hook concretos encontrados en el código fuente:
bizum_post_payment_complete (Bizum redirección y Bizum checkout)
Construido dinámicamente a partir de $this->id en Apple Pay y Google Pay (checkout / redirección / soporte de bloques), resolviéndose en applepayredsys_post_payment_complete, googlepayredsys_post_payment_complete y googlepayredirecredsys_post_payment_complete.
Parámetros
Nombre
Tipo
Descripcion
$order_id
int
El id de pedido de WooCommerce.
Fuente: classes/class-wc-gateway-bizum-redsys.php:1515 (y llamadas equivalentes en cada clase de pasarela).
PHP
// React only to successful Bizum payments.
add_action( 'bizum_post_payment_complete', 'my_bizum_complete', 10, 1 );
function my_bizum_complete( $order_id ) {
// Custom logic for Bizum-paid orders.
}
{gateway_id}_post_payment_errorAction
Equivalente por pasarela de redsys_post_payment_error. Cada pasarela sin redirección dispara su propia action de error. El nombre del hook se construye a partir del id de la pasarela, por ejemplo bizum_post_payment_error o insite_post_payment_error.
Nombres de hook concretos encontrados en el código fuente:
bizum_post_payment_error
directdeb_post_payment_error
insite_post_payment_error
masterpass_post_payment_error
paygold_post_payment_error
Construido dinámicamente a partir de $this->id en Apple Pay y Google Pay, resolviéndose en applepayredsys_post_payment_error, googlepayredsys_post_payment_error y googlepayredirecredsys_post_payment_error.
Parámetros
Nombre
Tipo
Descripcion
$order_id
int
El id de pedido de WooCommerce.
$error
string
Un mensaje o motivo de error legible.
Fuente: classes/class-wc-gateway-bizum-redsys.php:1557 (y llamadas equivalentes en cada clase de pasarela).
PHP
add_action( 'insite_post_payment_error', 'my_insite_error', 10, 2 );
function my_insite_error( $order_id, $error ) {
error_log( sprintf( 'inSite error on order %d: %s', $order_id, $error ) );
}
redsys_payment_fieldsAction
Se dispara dentro de la salida de payment_fields() de la pasarela principal de Redsys, en el punto donde se renderizan la descripción del método de pago del checkout y la interfaz de tarjetas guardadas. Úsalo para imprimir contenido extra (avisos, campos personalizados, sellos de confianza) dentro del área de pago de Redsys en el checkout clásico.
Filtra si una pasarela dada debe seguir estando disponible cuando el carrito contiene un producto marcado para preautorización. Por defecto solo sobreviven las pasarelas que declaran supports( 'redsys_preauth' ); devuelve un valor verdadero para forzar la disponibilidad de un id de pasarela concreto. Ten en cuenta que el valor que se pasa como primer argumento es el id de la pasarela (string), y el valor devuelto por la callback se evalúa como booleano.
Parámetros
Nombre
Tipo
Descripcion
$gateway_id
string
El id de la pasarela que se está evaluando. Devuelve true para mantener esta pasarela disponible para carritos de preautorización, o false para dejar el comportamiento por defecto.
Filtra si una pasarela dada debe seguir estando disponible cuando el carrito requiere tokenización (recurrente / tarjeta guardada). Por defecto solo sobreviven las pasarelas que declaran supports( 'redsys_token_r' ); devuelve un valor verdadero para forzar la disponibilidad de un id de pasarela concreto.
Parámetros
Nombre
Tipo
Descripcion
$gateway_id
string
El id de la pasarela que se está evaluando. Devuelve true para mantener esta pasarela disponible para carritos de tokenización.
Filtra el estado de pedido usado cuando un pago de Redsys queda en estado pendiente (por ejemplo, a la espera de confirmación). Devuelve un slug de estado de WooCommerce distinto para anular el estado pendiente por defecto aplicado a dichos pedidos.
Parámetros
Nombre
Tipo
Descripcion
$status
string
El slug de estado pendiente que se va a aplicar. Devuelve el estado (posiblemente modificado).
Filtra el número de transacción / pedido enviado a Redsys para un pedido. Redsys exige una referencia de pedido numérica con un formato estricto; usa este filtro si necesitas personalizar cómo se genera la referencia (por ejemplo, para integrarlo con un plugin de numeración secuencial de facturas).
Parámetros
Nombre
Tipo
Descripcion
$transaction_id2
string
El número de pedido de Redsys calculado. Devuelve el número de pedido (posiblemente modificado).
$order_id
int
El id de pedido de WooCommerce.
$gateway
object
La instancia de la pasarela que genera la referencia.
add_filter( 'redsys_order_number', 'my_order_number', 10, 3 );
function my_order_number( $transaction_id2, $order_id, $gateway ) {
// Keep Redsys formatting rules in mind (numeric, length limits).
return $transaction_id2;
}
redsys_product_descriptionFilter
Filtra la cadena de descripción del producto (Ds_Merchant_ProductDescription) enviada a Redsys para un pedido. Útil para personalizar lo que aparece en el terminal del banco / extracto del titular de la tarjeta.
Parámetros
Nombre
Tipo
Descripcion
$description
string
La descripción del producto. Devuelve la descripción (posiblemente modificada).
add_filter( 'redsys_product_description', 'my_product_description', 10, 2 );
function my_product_description( $description, $order ) {
return 'My Store order #' . $order->get_order_number();
}
redsys_refund_filterFilter
Filtra el array de argumentos ensamblado antes de enviar una solicitud de reembolso a Redsys. Úsalo para inspeccionar o ajustar el payload del reembolso.
Parámetros
Nombre
Tipo
Descripcion
$array
array
Los datos de la solicitud de reembolso. Devuelve el array (posiblemente modificado).
add_filter( 'redsys_refund_filter', 'my_refund_filter', 10, 1 );
function my_refund_filter( $array ) {
// Inspect or tweak refund data before it is sent.
return $array;
}
IPN / notificaciones 3
valid_{gateway_id}_standard_ipn_requestAction
Se dispara cuando se ha recibido y verificado una IPN válida (Instant Payment Notification, la callback asíncrona servidor a servidor de Redsys) para una pasarela. El nombre del hook se construye dinámicamente a partir del id de la pasarela, por lo que se resuelve en nombres como valid_insite_standard_ipn_request, valid_bizumredsys_standard_ipn_request, valid_paygold_standard_ipn_request, valid_directdebitredsys_standard_ipn_request, valid_masterpass_standard_ipn_request, y las variantes de Apple Pay / Google Pay. Se pasa el payload de notificación en bruto ($_POST) para que puedas realizar tu propio procesamiento en cada IPN verificada.
Parámetros
Nombre
Tipo
Descripcion
$post
array
El array $_POST en bruto recibido de Redsys para la notificación verificada.
Fuente: classes/class-wc-gateway-insite-redsys.php:9346 (y llamadas equivalentes en cada clase de pasarela).
Se dispara cuando se ha recibido y verificado una IPN válida para la pasarela principal de Redsys (redirección / tarjeta de crédito). Ten en cuenta que este nombre de hook concreto usa guiones, a diferencia de las variantes dinámicas basadas en guiones bajos anteriores.
add_action( 'valid_redsysbank_standard_ipn_request', 'my_bank_ipn', 10, 1 );
function my_bank_ipn( $post ) {
// Custom handling for bank-transfer notifications.
}
Iconos y argumentos de pasarela 10
woocommerce_redsys_iconFilter
Filtra la URL del icono (logo) que se muestra junto a la pasarela principal de Redsys (tarjeta de crédito) en el checkout, incluido el checkout de WooCommerce Blocks.
Parámetros
Nombre
Tipo
Descripcion
$logo_url
string
La URL del icono. Devuelve la URL (posiblemente modificada).
Fuente: classes/class-wc-gateway-redsys.php:521 (y 1 ubicación más, además de la clase de soporte de bloques).
Filtra la URL del icono (logo) que se muestra para la pasarela inSite (formulario de tarjeta embebido), tanto en el checkout clásico como en el de bloques.
Parámetros
Nombre
Tipo
Descripcion
$logo_url
string
La URL del icono. Devuelve la URL (posiblemente modificada).
Fuente: classes/class-wc-gateway-insite-redsys.php:413 (y otras ubicaciones incluyendo la clase de soporte de bloques).
PHP
add_filter( 'woocommerce_insite_icon', 'my_insite_icon', 10, 1 );
function my_insite_icon( $logo_url ) {
return $logo_url; // or your own URL
}
woocommerce_masterpass_iconFilter
Filtra la URL del icono (logo) que se muestra para la pasarela MasterPass.
Parámetros
Nombre
Tipo
Descripcion
$logo_url
string
La URL del icono. Devuelve la URL (posiblemente modificada).
Fuente: classes/class-wc-gateway-masterpass-redsys.php:231 (y otras ubicaciones incluyendo la clase de soporte de bloques).
Filtra la URL del icono (logo) que se muestra para la pasarela de Transferencia bancaria de Redsys, tanto en el checkout clásico como en el de bloques.
Parámetros
Nombre
Tipo
Descripcion
$logo_url
string
La URL del icono. Devuelve la URL (posiblemente modificada).
Fuente: classes/class-wc-gateway-redsys-bank-transfer.php:262 (y otras ubicaciones incluyendo la clase de soporte de bloques).
Filtro de icono dinámico construido a partir del id de la pasarela. Las clases de pasarela y las clases de soporte de bloques del plugin exponen filtros de icono nombrados según cada id de pasarela, por lo que los nombres concretos incluyen woocommerce_bizumredsys_icon, woocommerce_directdebitredsys_icon, woocommerce_inespayredsys_icon, woocommerce_applepayredsys_icon, woocommerce_googlepayredsys_icon, y woocommerce_googlepayredirecredsys_icon.
Parámetros
Nombre
Tipo
Descripcion
$logo_url
string
La URL del icono. Devuelve la URL (posiblemente modificada).
Fuente: includes/blocks/class-wc-gateway-bizum-support.php:86 (y llamadas equivalentes por pasarela). En varias clases de pasarela el icono dinámico también se dispara mediante la variante woocommerce_{gateway_id}_iconn (ver más abajo).
Filtro de icono dinámico con una doble n al final, usado dentro de varias clases de pasarela (Bizum, Bizum checkout, Domiciliación bancaria, Apple Pay, Google Pay checkout/redirección). Se documenta tal cual porque existe en el código fuente; se resuelve en nombres como woocommerce_directdebitredsys_iconn, woocommerce_applepayredsys_iconn, woocommerce_googlepayredsys_iconn, etc. La mayor parte del renderizado de iconos en el front-end también expone el correctamente escrito woocommerce_{gateway_id}_icon a través de las clases de soporte de bloques, así que usa preferentemente ese cuando esté disponible.
Parámetros
Nombre
Tipo
Descripcion
$logo_url
string
La URL del icono. Devuelve la URL (posiblemente modificada).
Fuente: classes/class-wc-gateway-direct-debit-redsys.php:255 (y llamadas equivalentes por pasarela).
Filtra el array completo de argumentos (los parámetros de la solicitud a Redsys) ensamblado antes de enviar un pago al banco, para las pasarelas que usan el conjunto de argumentos redsys compartido (la pasarela principal, Bizum, Bizum checkout, Transferencia bancaria y Domiciliación bancaria). Úsalo para añadir o sobrescribir parámetros de comercio de Redsys (Ds_Merchant_*).
Parámetros
Nombre
Tipo
Descripcion
$redsys_args
array
Los argumentos de la solicitud a Redsys. Devuelve el array (posiblemente modificado).
Fuente: classes/class-wc-gateway-bizum-redsys.php:990 (y otras ubicaciones incluyendo las clases de pasarela principal, Transferencia bancaria y Domiciliación bancaria).
PHP
add_filter( 'woocommerce_redsys_args', 'my_redsys_args', 10, 1 );
function my_redsys_args( $redsys_args ) {
// Add or modify Ds_Merchant_* parameters.
return $redsys_args;
}
woocommerce_{gateway_id}_argsFilter
Versión dinámica del filtro de argumentos de la solicitud, construida a partir del id de la pasarela para las pasarelas que mantienen su propio conjunto de argumentos (MasterPass, Apple Pay checkout, Google Pay checkout, Google Pay redirección). Los nombres concretos incluyen woocommerce_masterpass_args, woocommerce_applepayredsys_args, woocommerce_googlepayredsys_args, y woocommerce_googlepayredirecredsys_args.
Parámetros
Nombre
Tipo
Descripcion
$redsys_args
array
Los argumentos de la solicitud a Redsys. Devuelve el array (posiblemente modificado).
Fuente: classes/class-wc-gateway-apple-pay-checkout.php:1533 (y llamadas equivalentes por pasarela).
Filtra el texto de la etiqueta de la acción "Añadir tarjeta" presentada a los clientes en el área Mi Cuenta cuando pueden almacenar un nuevo token de tarjeta.
Parámetros
Nombre
Tipo
Descripcion
$text
string
El texto del botón/etiqueta. Devuelve el texto (posiblemente modificado).
Fuente: classes/class-wc-gateway-redsys.php:5612.
PHP
add_filter( 'text_add_card_my_account', 'my_add_card_text', 10, 1 );
function my_add_card_text( $text ) {
return __( 'Save a new card', 'my-textdomain' );
}
redsys_text_get_tokenFilter
Filtra el texto que se muestra al cliente ofreciéndole guardar / tokenizar su tarjeta durante el checkout (el texto de "guardar esta tarjeta"). Se aplica en los contextos principal, inSite y de soporte de bloques.
Parámetros
Nombre
Tipo
Descripcion
$text
string
El texto del aviso de tokenización. Devuelve el texto (posiblemente modificado).
Fuente: classes/class-wc-gateway-redsys.php:5586 (y otras ubicaciones incluyendo las clases inSite y de soporte de bloques).
PHP
add_filter( 'redsys_text_get_token', 'my_get_token_text', 10, 1 );
function my_get_token_text( $text ) {
return __( 'Remember my card for next time', 'my-textdomain' );
}
redsys_text_preauthFilter
Filtra el texto que se muestra al cliente explicando un cargo de preautorización (solo autorización) en el checkout.
Parámetros
Nombre
Tipo
Descripcion
$text
string
El texto explicativo de la preautorización. Devuelve el texto (posiblemente modificado).
Fuente: classes/class-wc-gateway-redsys.php:5596 (y otras ubicaciones incluyendo las clases inSite y de soporte de bloques).
PHP
add_filter( 'redsys_text_preauth', 'my_preauth_text', 10, 1 );
function my_preauth_text( $text ) {
return __( 'Your card will be authorized, not charged, until we ship.', 'my-textdomain' );
}
redsys_disable_remote_token_removalFilter
Desde: 23.0.0
Filtra si el plugin debe omitir la eliminación de un token de tarjeta almacenado en el lado de Redsys cuando llega una notificación inesperada de eliminación de token. Por defecto es true (eliminación remota desactivada) como medida de seguridad mientras se investigan las eliminaciones inesperadas. Devuelve false para permitir que el token remoto se elimine.
Parámetros
Nombre
Tipo
Descripcion
$disabled
bool
Si la eliminación remota está desactivada. Devuelve true para conservar el token, false para permitir la eliminación remota.
Filtra los datos usados para construir el correo que invita a un cliente a añadir / registrar un token de tarjeta (asunto, cuerpo, cabeceras, destinatario, etc.). Úsalo para personalizar el texto o el enrutado del correo de solicitud de token.
Parámetros
Nombre
Tipo
Descripcion
$data
array
Array asociativo con claves como user_id, email, name, last_name, site_title, user_link, subject, body, headers. Devuelve el array (posiblemente modificado).
Fuente: classes/class-wc-redsys-profile.php:125 (y 1 ubicación más en el mismo archivo).
Se dispara después de que la pasarela procese el guardado de campos de pedido personalizados, pasando los datos enviados. Úsalo para persistir tu propio meta de pedido a partir de los valores enviados durante el checkout / procesamiento del pedido.
Parámetros
Nombre
Tipo
Descripcion
$data
array
Los datos enviados ($_POST o un array de datos derivado, según el punto de llamada).
Fuente: classes/class-wc-gateway-redsys.php:10954 (y 3 ubicaciones más en las clases de pasarela principal e inSite).
PHP
add_action( 'save_field_update_order_meta', 'my_save_order_fields', 10, 1 );
function my_save_order_fields( $data ) {
// Inspect $data and store your own order meta if needed.
}
redsys_kses_descripcionFilter
Filtra la lista de etiquetas/atributos HTML permitidos usada para sanear la descripción de la pasarela renderizada en el checkout (pasada a wp_kses). Úsalo para permitir marcado seguro adicional en la descripción del método de pago.
Parámetros
Nombre
Tipo
Descripcion
$allowed_html
array
El array de HTML permitido de wp_kses. Devuelve el array (posiblemente modificado).
Fuente: classes/class-wc-gateway-redsys.php:5516 (y otras ubicaciones en las clases inSite, Bizum checkout, Apple Pay y Google Pay).
Filtra el mensaje que se muestra al cliente mientras un pago de Bizum (checkout) está a la espera de confirmarse en la app móvil del banco del comprador.
Parámetros
Nombre
Tipo
Descripcion
$text
string
El mensaje de espera. Devuelve el texto (posiblemente modificado).
Filtra si se puede crear automáticamente una cuenta de WordPress/WooCommerce durante una compra con Apple Pay (checkout clásico). Por defecto usa el ajuste de registro de WooCommerce; devuelve true/false para anularlo.
Parámetros
Nombre
Tipo
Descripcion
$registration_enabled
bool
Si se permite la creación de cuenta. Devuelve el booleano (posiblemente modificado).
Fuente: classes/class-wc-gateway-apple-pay-checkout.php:1963 (y 1 ubicación más en el mismo archivo).
Filtra los datos pasados al correo recordatorio programado de "tarjeta de crédito a punto de caducar" antes de enviarlo. Úsalo para personalizar o suprimir el recordatorio.
Parámetros
Nombre
Tipo
Descripcion
$data
array
Los datos del correo. Devuelve el array (posiblemente modificado).
Se dispara justo antes de renderizar el botón "Comprar ahora" (un clic) en una página de producto individual. Úsalo para mostrar marcado personalizado encima del botón.
Se dispara justo después de renderizar el botón "Comprar ahora" (un clic) en una página de producto individual. Úsalo para mostrar marcado personalizado debajo del botón.
Filtra la lista de métodos de envío aceptados por el flujo "Comprar ahora" de un clic. Por defecto usa la opción almacenada woocommerce_redsys_shipping_methods.
Parámetros
Nombre
Tipo
Descripcion
$shipping_methods
array
Los ids de métodos de envío aceptados. Devuelve el array (posiblemente modificado).
Filtra la lista de campos de checkout personalizados recogidos durante el flujo de checkout exprés (estilo Apple Pay / Google Pay), para un contexto dado.
Parámetros
Nombre
Tipo
Descripcion
$custom_fields
array
La definición de los campos personalizados. Devuelve el array (posiblemente modificado).
Se dispara cuando cambia el estado de una sesión UCP (por ejemplo a reembolsada o cancelada). Se usa para mantener el estado de la sesión UCP sincronizado con el pedido de WooCommerce.
Parámetros
Nombre
Tipo
Descripcion
$session_id
string
El id de la sesión UCP.
$ucp_status
string
El nuevo estado UCP (por ejemplo refunded, canceled).
$order
WC_Order|null
El pedido relacionado, o null si no está disponible.
$old_status
string
El estado anterior (el estado anterior de WooCommerce del pedido, cuando esté disponible).
Fuente: classes/ucp/class-redsys-ucp-order-sync.php:53 (y 3 ubicaciones más en la capa UCP).
Filtra si debe omitirse la verificación de la firma del handoff para una sesión UCP. Por defecto es false (la firma se verifica). Devuelve true para omitirla (no recomendado en producción).
Parámetros
Nombre
Tipo
Descripcion
$skip
bool
Si se debe omitir la comprobación. Devuelve el booleano (posiblemente modificado).
Filtra si se permiten URLs de webhook con HTTP plano (no HTTPS) para las suscripciones de webhook ACP. Por defecto es false (se requiere HTTPS). Devuelve true para permitir HTTP (no recomendado en producción).
Parámetros
Nombre
Tipo
Descripcion
$allow
bool
Si se permite HTTP. Devuelve el booleano (posiblemente modificado).
Filtra si se permite el transporte inseguro (no HTTPS) para las solicitudes de autenticación ACP/MCP. Por defecto es false. Devuelve true solo en entornos de desarrollo de confianza.
Parámetros
Nombre
Tipo
Descripcion
$allow
bool
Si se permite el transporte inseguro. Devuelve el booleano (posiblemente modificado).