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:
Por qué falla Bizum WooCommerce: detecta errores de credenciales, firma, entorno y pedidos para recuperar…
Elige un plugin gratuito Redsys WordPress con criterio: compatibilidad, seguridad, configuración bancaria y límites para…
¿Qué necesito para activar CECA Online? Revisa contrato bancario, datos del terminal, seguridad, pruebas y…
Aprende a elegir una pasarela para suscripciones en WordPress: revisa recurrencia, compatibilidad, seguridad y soporte…
Elige un plugin Bizum WordPress compatible con tu flujo de venta, configura la pasarela bancaria…
Aprende cómo aceptar CECA en reservas WordPress, configurar pagos seguros y confirmar cada reserva sin…