Índice
La clase EDD_Customer se utiliza para obtener datos del cliente, crear nuevas entradas de cliente y editar las existentes. Los valores que se pueden administrar con esta clase son:
- user_id
- name
- payment_ids
- purchase_value
- purchase_count
- notes
Obtener un cliente
Sus razones para obtener datos del cliente pueden variar desde simplemente mostrar la información hasta usarla para estadísticas o registros o cualquier otra cosa. Estos son los pasos para obtener y mostrar 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. Esto puede ser una dirección de correo electrónico, un ID de cliente o un 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 de cliente
- $customer->user_id; // ID de usuario de WordPress
- $customer->payment_ids;
Puedes imprimirlos, 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,
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 );
required option is email, so this would work as well:
$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: Obtener los datos.
Utiliza el código de ejemplo de "Obtener un cliente" de arriba.
Paso 2: Actualizar los datos
Hay dos formas de actualizar los datos del cliente con EDD_Customer. Una es usar el
update() método 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 añadir una nueva nota.
Actualizar campos específicos
En lugar de usar el método general update() que se enumera 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 de cliente como se indicó anteriormente:
$customer = new EDD_Customer( 33 );
attach_payment() y remove_payment()
Estos se utilizan para adjuntar y eliminar pagos de y hacia 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 utilizan para aumentar y disminuir el
número de compras realizadas por un solo cliente. Ambos simplemente toman 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 utilizan para aumentar y disminuir la cantidad gastada por un solo cliente. Ambos toman un número decimal, a dos decimales, 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 desea y la segunda es un desplazamiento.
Ejemplos:
$customer->get_notes( 5 ); // gets the first 5 notes
$customer->decrease_value( 5, 6 ); // gets 5 notes starting at position 6, so notes 6-10
get_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 gestionar 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 'unique'. Si la tercera entrada es 'true', add_meta solo tendrá éxito si la clave de metadatos no existe previamente. Devuelve 'false' en caso de fallo. 'True' en caso de éxito.
update_meta( $meta_key = '', $meta_value, $prev_value = '' )
update_meta acepta una clave de metadatos y el nuevo valor que desea establecer para ella. Si tiene 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. Por lo tanto, si ya tiene varias claves de metadatos de
foo pero solo una con un valor de bar, podría hacer que bar sea la tercera entrada y la actualización solo ocurrirá en esa. Devuelve 'false' en caso de fallo. 'True' en caso de éxito.
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' en caso de fallo. 'True' en caso de éxito.
Direcciones de correo electrónico del cliente
Each customer can have multiple email addresses, allowing them to purchase from more than one address, or purchase from one and get support from another. Each customer will also have a primary email address, which gets used as a default for the customer. In the Customer Management tab the UI looks like this:
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 'true', la nueva dirección de correo electrónico se establecerá como la dirección principal del cliente. Devuelve 'false' en caso de fallo. 'True' en caso de éxito.
set_primary_email( $new_primary_email = '' )
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 'false' en caso de fallo. 'True' en caso de éxito.
remove_email( $email = '' )
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 'false' en caso de fallo. 'True' en caso de éxito.
