Índice
Pagos recurrentes incluye una nueva clase EDD para gestionar suscriptores. La clase EDD_Recurring_Subscriber te permite interactuar con los clientes de suscripción y las suscripciones en sus cuentas.
Creación de objetos
EDD_Recurring_Subscriber debe llamarse con un identificador de un cliente EDD o un usuario de WordPress en el sitio. Podría ser una dirección de correo electrónico, un ID de usuario de WordPress o un ID de cliente EDD. Aquí tienes algunos ejemplos:
$subscriber = new EDD_Recurring_Subscriber( '[email protected]' );
Si pasas un entero, buscará un cliente EDD con ese customer_id.
$subscriber = new EDD_Recurring_Subscriber( 3 );
Si pasas un entero con un segundo argumento de true, buscará un usuario de WordPress con ese user_id.
$subscriber = new EDD_Recurring_Subscriber( 3, true );
Cualquiera de las opciones anteriores devolverá un objeto que se parece a esto:
EDD_Recurring_Subscriber Object
(
[subs_db:EDD_Recurring_Subscriber:private] => EDD_Subscriptions_DB Object
(
[table_name] => wp_edd_subscriptions
[version] => 1.4.1.3
[primary_key] => id
)
[id] => 11111
[purchase_count] => 19
[purchase_value] => 2173.3
[email] => [email protected]
[emails] => Array
(
[0] => [email protected]
)
[name] => Bob Smith
[date_created] => 2015-06-15 16:38:08
[payment_ids] =>
[user_id] => 1nan1
[notes:protected] =>
[raw_notes:EDD_Customer:private] =>
[db:protected] => EDD_DB_Customers Object
(
[meta_type] => customer
[date_key] => date_created
[cache_group] => customers
[table_name] => wp_edd_customers
[version] => 1.0
[primary_key] => id
)
)
Métodos disponibles
Cada uno de los métodos siguientes asume que tienes un objeto asociado a un cliente específico y se referirá a ese cliente como “el cliente”.
Métodos condicionales
$subscriber->has_active_subscription()
Este método comprueba si el cliente tiene una suscripción que esté activa o cancelada, pero no caducada.
Devuelve un booleano, filtrado de esta manera:
apply_filters( 'edd_recurring_has_active_subscription', $ret, $this );
$subscriber->has_product_subscription( $product_id = 0 )
Este método comprueba si el cliente tiene algún tipo de suscripción en un ID de producto EDD específico.
Acepta un entero que sea un ID de producto EDD.
Devuelve un booleano filtrado de esta manera:
return apply_filters( 'edd_recurring_has_product_subscription', $ret, $product_id, $this );
$subscriber->has_active_product_subscription( $product_id = 0 )
Este método comprueba si el cliente tiene una suscripción activa en un ID de producto EDD específico.
Acepta un entero que sea un ID de producto EDD.
Devuelve un booleano filtrado de esta manera:
return apply_filters( 'edd_recurring_has_active_product_subscription', $ret, $product_id, $this );
Obtener información del suscriptor
$subscriber->get_subscription_by_profile_id( $profile_id = ” )
Este método acepta un ID de perfil de pago y devuelve un objeto EDD_Subscription con toda la información sobre esa suscripción.
Accepts a payment gateway profile ID. You can find profile IDs for specific subscriptions on the details page for a specific subscription under Downloads → Subscriptions. 
Devuelve un objeto EDD_Subscription. Un ejemplo se puede encontrar en la documentación de EDD_Subscription.
$subscriber->get_subscription( $subscription_id = 0 )
Este método acepta una suscripción y devuelve un objeto EDD_Subscription con toda la información sobre esa suscripción, similar a $subscriber->get_subscription_by_profile_id()
$subscriber->get_subscriptions( $product_id = 0, $statuses = array() )
Este método obtendrá todas las suscripciones del cliente que cumplan los requisitos de entrada. Acepta dos argumentos, el primero es un product_id y el segundo es una matriz de estados. Aquí tienes algunos ejemplos:
// gets all subscriptions for the customer $subscriber->get_subscriptions();
// gets all subscriptions for the customer for product ID 85 $subscriber->get_subscriptions( 85 );
// gets all active subscriptions for the customer for product ID 85 $subscriber->get_subscriptions( 85, array( 'active' ) );
// gets all active subscriptions for the customer, regardless of product $subscriber->get_subscriptions( '', array( 'active' ) );
// gets all active and cancelled subscriptions for the customer, regardless of product $subscriber->get_subscriptions( '', array( 'active', cancelled' ) );
$subscriber->get_new_expiration( $download_id = 0, $price_id = null )
Este método determina la fecha de expiración de una suscripción un período más allá de la fecha de expiración actual. Por ejemplo, si la fecha de expiración fuera 2017-01-01 23:59:59 y el período fuera un mes, entonces este método devolvería 2017-02-01 23:59:59.
Acepta un entero para download_id como primer argumento obligatorio.
Acepta un entero para price_id en el caso de precios variables, opcional
Devuelve una fecha formateada como Y-m-d H:i:s.
$subscriber->get_recurring_customer_ids()
Este método devuelve una matriz que contiene todos los ID de cliente creados por las pasarelas de pago para el cliente. Un ejemplo sería
Array
(
[stripe] => cus_85YmUU1QuH5yxY
)
La salida se filtra de esta manera:
apply_filters( 'edd_recurring_customer_ids', $ids, $this );
$subscriber->get_recurring_customer_id( $gateway = false )
Este método acepta un nombre de pasarela y devuelve una cadena que contiene el ID de cliente asociado con el cliente y esa pasarela.
Acepta una cadena que contiene un nombre de pasarela como stripe.
Devuelve una cadena que contiene un ID de cliente como cus_85YmUU1QuH5yxY
La salida se filtra de esta manera:
apply_filters( 'edd_recurring_get_customer_id', $customer_id, $this );
Establecer opciones del suscriptor
$subscriber->set_as_subscriber()
Este método toma al cliente y crea un Cliente EDD con su información.
$subscriber->set_recurring_customer_id( $recurring_id = ”, $gateway = false )
Este método acepta un ID recurrente de pasarela de pago y un nombre de pasarela de pago y los asocia con el cliente.
Acepta una cadena que contiene un ID recurrente de pasarela de pago como cus_85YmUU1QuH5yxY. Obligatorio.
stripe. RequiredGestión de suscripciones
$subscriber->add_subscription( $args = array() )
Este método agrega una suscripción a un cliente EDD. Si no se incluye un customer_id, crea uno a partir del cliente de WordPress.
Este método utiliza EDD_Subscription::create() y, por lo tanto, tiene los mismos requisitos. Documentación completa para EDD_Subscription::create().
Acepta una matriz de datos requeridos por EDD_Subscription::create().
Devuelve un objeto de suscripción.
$subscriber->add_payment( $args = array() )
Este método agrega un registro de pago a una suscripción específica para el cliente. Acepta una matriz como esta:
$args = array(
'subscription_id' => 0,
'amount' => '0.00',
'transaction_id' => '',
);
La clave de matriz subscription_id no debe estar vacía y debe ser un entero.
Este método utiliza EDD_Subscription::add_payment() y, por lo tanto, tiene los mismos requisitos. Documentación completa para EDD_Subscription::add_payment().
Devuelve true.
