Hace poco me he encontrado con un proyecto donde he necesitado obtener la primera fecha de compra de un producto por parte de usuario. En este caso la idea era poder hacer una restricción de contenido, pero este mismo dato, puede serviros para labores marketing (ofrece cupones en base a la antigüedad de la compra de un producto por un cliente), para temas estadísticos o para añadir datos a un panel de cliente, por ejemplo.
La idea es tener una función que reciba dos parámetros el ID de producto y el ID de usuario y te devuelva la última fecha de compra (que si hay dos o más compras por parte de un usuario, que nos devuelva la más reciente).
function fecha_compra_producto( $product_id, $user_id = 0 ){
$user_id = ( empty( $user_id ) ) ? get_current_user_id() : $user_id;
$orders = wc_get_orders( array(
'posts_per_page' => -1,
'customer_id' => $user_id,
'orderby' => 'date',
'order' => 'DESC',
'status' => array( 'wc-completed' ),
) );
foreach( $orders as $order_id ) {
$order = wc_get_order( $order_id );
$items = $order->get_items();
foreach( $items as $order_item ){
if( $product_id == $order_item->get_product_id() )
return $order->order_date;
}
}
return false;
} Comentemos un poco el código:
Ya está disponible la versión 2.2 de Contact Form 7 – Integración con RedSys, y…
El comercio electrónico español, que se encuentra en pleno crecimiento y transformación, vive actualmente un…
Hasta ahora, la integración de Contact Form 7 con RedSys solo sabía cobrar pagos únicos:…
El pago fraccionado de RedSys para WooCommerce lleva un tiempo permitiendo dividir el precio de…
Ya está disponible la versión 1.24 de Contact Form 7 - Integración con RedSys, y…
Hasta ahora, cobrar una suscripción en WooCommerce significaba aceptar una regla muy simple: eliges un…