Tabla de Contenidos
La clase EDD_Customer se utiliza para obtener datos de clientes, crear nuevas entradas de clientes y editar entradas de clientes existentes. Los valores que se pueden administrar con esta clase son:
- user_id
- nombre
- correo electrónico
- payment_ids
- purchase_value
- purchase_count
- notes
Obtener un cliente
Sus razones para obtener datos de clientes pueden variar desde simplemente mostrar la información hasta usarla para estadísticas o registros o cualquier otra cosa. Aquí están los pasos para obtener y mostrar la información del cliente.
Paso 1, Obtener los datos
Para crear un objeto Customer, debe pasar algún tipo de identificador al instanciar la clase. Esta puede ser una dirección de correo electrónico, ID de cliente o ID de usuario de WordPress.
Ejemplos:
Email
$customer = new EDD_Customer( '[email protected]' );
ID de cliente
$customer = new EDD_Customer( 33 );
ID de usuario de WordPress
$customer = new EDD_Customer( 96, true );
Nota: para el ID de usuario de WordPress, debe pasar un valor de true como segundo parámetro, para que sepa que debe buscar en WordPress en lugar de EDD.
Paso 2, Usar los datos
Ahora puede acceder a las propiedades del objeto cliente de esta manera:
- $customer->name;
- $customer->email;
- $customer->date_created;
- $customer->purchase_count;
- $customer->purchase_value;
- $customer->id; // ID del cliente
- $customer->user_id; // ID de usuario de WordPress
- $customer->payment_ids;
Puedes mostrarlos, analizarlos; lo que desees.
Obtener datos de pago del cliente
La clase EDD_Customer tiene un método llamado
get_payments(). Este método devolverá un array de objetos EDD_Payment. Ejemplo:
$customer = new EDD_Customer( 33 ); $payments = $customer->get_payments();
Ahora $payments contendrá un array de objetos EDD_Payment. Para más información sobre cómo es ese array,
por favor, consulta la documentación de la clase EDD_Payment.
Crear un cliente
Primero, instancia un objeto:
$customer = new EDD_Customer;
Ejemplo 1:
$args = array( 'user_id' => 12 'name' => 'Jose Canseco', 'email' => '[email protected]', 'payment_ids' => '', 'purchase_value' => '', 'purchase_count' => '', 'notes' => 'Whatever note you'd like', );
Nota: el
user_id anterior es un número de ID de usuario de WordPress. Solo es necesario si deseas asociar tu cliente con un usuario de WordPress. Si no, elimínalo del array.
$customer->create( $args );
opción *requerida* es el correo electrónico, así que esto también funcionaría:
$args = array( 'email' => '[email protected]', );
$customer->create( $args );
Esto crea un cliente solo con la dirección de correo electrónico proporcionada, lo cual funciona perfectamente.
Actualizar un cliente
Paso 1: Obtén los datos.
Usa el código de ejemplo de “Obtener un cliente” arriba.
Paso 2: Actualiza los datos
Hay dos formas de actualizar los datos del cliente con EDD_Customer. Una es usar el
método update() y actualizar varios campos a la vez.
Ejemplo:
$customer = new EDD_Customer( 33 ); $update_args = array( 'email' => '[email protected]', 'name' => 'Jose Canseco', );
Ahora el cliente 33 tiene una dirección de correo electrónico actualizada y una nueva nota.
Nota: actualizar el campo de notas con este método eliminará cualquier nota existente. Usa el método add_note() mencionado a continuación para agregar una nueva nota.
Actualizar campos específicos
En lugar de usar el método general update() que se muestra arriba, generalmente deberías intentar usar uno de los métodos auxiliares proporcionados a continuación. Estos proporcionan una funcionalidad específica y limitada que puede ayudar a reducir errores.
Para cada uno de los siguientes métodos, primero deberías instanciar la clase del cliente como se indicó anteriormente:
$customer = new EDD_Customer( 33 );
attach_payment() y remove_payment()
Estos se utilizan para adjuntar y eliminar pagos de un cliente. Ambos toman un payment_id como primera variable y una opción booleana como segunda. La segunda actualizará las estadísticas si se establece en true.
Ejemplos:
$customer->attach_payment( 33, true );
$customer->remove_payment( 33, true );
increase_purchase_count() y decrease_purchase_count()
Estos se usan para aumentar y disminuir el
número de compras realizadas por un solo cliente. Ambos toman simplemente un entero, cambiando el valor almacenado en esa cantidad.
Ejemplos:
$customer->increase_purchase_count( 1 );
$customer->decrease_purchase_count( 1 );
increase_value() y decrease_value()
Estos se usan para aumentar y disminuir la cantidad gastada por un solo cliente. Ambos toman simplemente un número decimal, a dos lugares, cambiando el valor almacenado en esa cantidad.
Ejemplos:
$customer->increase_value( 14.98 );
$customer->decrease_value( 3.00 );
get_notes()
Este método devuelve las notas dejadas en la cuenta del cliente. Acepta 2 variables, la primera para cuántas notas quieres, y la segunda es un desplazamiento.
Ejemplos:
$customer->get_notes( 5 ); // obtiene las primeras 5 notas$customer->decrease_value( 5, 6 ); // obtiene 5 notas comenzando en la posición 6, así que las notas 6-10get_notes_count()
Este método devuelve el número de notas en la cuenta del cliente. No toma ninguna entrada.
Ejemplo:
$customer->get_notes_count();
add_note()
Este método acepta una cadena como entrada y la almacena como una nueva nota en la cuenta del cliente. Conserva los saltos de línea, pero no permite HTML.
Ejemplo:
$customer->add_note( 'Esta es una nota. ¿No es genial?' );
Metadatos del cliente
Los metadatos arbitrarios del cliente se pueden administrar utilizando las funciones de metadatos integradas en la clase EDD_Customer.
get_meta( $meta_key = ”, $single = true )
get_meta simplemente toma una clave de metadatos y devuelve el valor. Si single se establece en false, siempre devolverá una matriz.
add_meta( $meta_key = ”, $meta_value, $unique = false )
add_meta acepta una clave de metadatos y su valor, pero también acepta un booleano para único. Si la tercera entrada es verdadera, add_meta solo tendrá éxito si la clave de metadatos no existe previamente. Devuelve false para fallo. True para éxito.
update_meta( $meta_key = ”, $meta_value, $prev_value = ” )
update_meta acepta una clave de metadatos y el nuevo valor que deseas establecer para ella. Si tienes varias claves con el mismo nombre, todas se actualizarán con el nuevo valor. La tercera entrada acepta un valor para comparar con el valor anterior. Así que si ya tienes varias claves de metadatos de
foo pero solo una con un valor de bar, podrías hacer bar la tercera entrada y la actualización solo ocurriría en esa.
delete_meta( $meta_key = ”, $meta_value = ” )
delete_meta eliminará todos los metadatos con una clave coincidente. Si también se pasa un valor, ambos deben coincidir. Devuelve false para fallo. True para éxito.
Direcciones de correo electrónico del cliente
Cada cliente puede tener varias direcciones de correo electrónico, lo que les permite comprar desde más de una dirección, o comprar desde una y recibir soporte desde otra. Cada cliente también tendrá una dirección de correo electrónico principal, que se utiliza como predeterminada para el cliente. En la pestaña de gestión de clientes, la interfaz de usuario se ve así:
La clase EDD_Customer permite al desarrollador eliminar direcciones de un cliente y agregar direcciones a un cliente, así como hacer que una dirección específica sea la principal.
add_email( $email = ”, $primary = false )
Esta función acepta una dirección de correo electrónico para agregar al cliente. Si la segunda entrada es verdadera, la nueva dirección de correo electrónico se establecerá como la dirección principal del cliente. Devuelve falso en caso de fallo. Verdadero en caso de éxito.
establecer_correo_primario( $nuevo_correo_primario = "" )
Esta función acepta una dirección de correo electrónico y, si la dirección de correo electrónico ya está asociada a este cliente, la convertirá en la dirección de correo electrónico principal de ese cliente. Devuelve falso en caso de fallo. Verdadero en caso de éxito.
eliminar_correo( $correo = "" )
Esta función acepta una dirección de correo electrónico y, si la dirección de correo electrónico ya está asociada a este cliente, la eliminará de ese cliente. Devuelve falso en caso de fallo. Verdadero en caso de éxito.
