Avisar al cliente que ya ha comprado el producto en WooCommerce

Este tutorial es para poder poner un mensaje en la ficha de producto de WooCommerce cuando el cliente ha comprado ese producto y nosotros lo hemos marcado como completado en pedidos.

Podemos poner cualquier mensaje como por ejemplo: Ya has adquirido este producto, te recordamos que ya compraste este producto… Yo en este ejemplo lo voy a poner para avisarle tanto de que lo tiene ya como que nos valore en una plataforma externa.

Para esto, vamos a añadir el siguiente código en nuestro functios.php o bien en nuestro plugin code snippets como explico aquí.

// Función de utilidad para comprobar si un cliente ha comprado un producto (sólo para pedidos con estado "completado")
function customer_has_bought_product( $product_id, $user_id = 0 ) {
    global $wpdb;
    $customer_id = $user_id == 0 || $user_id == '' ? get_current_user_id() : $user_id;
    $status      = 'wc-completed';

    if( ! $customer_id )
        return false;

    // Contar el número de productos
    $count = $wpdb->get_var( "
        SELECT COUNT(woim.meta_value) FROM {$wpdb->prefix}posts AS p
        INNER JOIN {$wpdb->prefix}postmeta AS pm ON p.ID = pm.post_id
        INNER JOIN {$wpdb->prefix}woocommerce_order_items AS woi ON p.ID = woi.order_id
        INNER JOIN {$wpdb->prefix}woocommerce_order_itemmeta AS woim ON woi.order_item_id = woim.order_item_id
        WHERE p.post_status = '$status'
        AND pm.meta_key = '_customer_user'
        AND pm.meta_value = $customer_id
        AND woim.meta_key IN ('_product_id','_variation_id')
        AND woim.meta_value = $product_id
    " );

    // Devuelve un valor booleano si la cuenta es mayor que 0
    return $count > 0 ? true : false;
}

add_action( 'woocommerce_before_add_to_cart_form', 'woo_review_discount_message');
function woo_review_discount_message() {
    global $product;

    if ( customer_has_bought_product( $product->get_id() ) && ! $product->is_type('variable') ) {
        $user = wp_get_current_user();
        echo '<span style="color:red"><div class="user-bought">Hola ' . $user->first_name . '! ya has comprado este producto. Nos puedes valorar tanto el producto como nuestro servicio en Revi.io.</div></span>';
    }
}

Podemos cambiar tanto la ubicación del texto como el mensaje que queremos transmitir en la última parte del código. Quedando un resultado:

mostrar un mensaje si el cliente ha comprado el producto woocommerce

En este caso lo estoy usando como herramienta de marketing para conseguir valoraciones, pero tú lo puedes usar como quieras. ¡Así que depende de tu creatividad!

¿Se os ocurre alguna otra estrategia con este código? Escribidlo en comentarios junto con vuestras dudas

¡Haz clic para puntuar esta entrada!
(Votos: 1 Promedio: 5)

Especialista en Comercio electrónico con Woocommerce. Te ayudo a crear, gestionar y publicitar tu Ecommerce en función de tu sector y público objetivo. Puedes encontrarme en Diegol.top

¿Necesitas ayuda con este tutorial? Mándame un correo y te resuelvo todas las dudas!


Ver servicios Contactar

También puedes suscribirte a mi newsletter para no perderte ninguna novedad

Reader Interactions

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *