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:

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!
Otra forma es trabajar que el cliente repita la compra en WooCommerce.
¿Se os ocurre alguna otra estrategia con este código? Escribidlo en comentarios junto con vuestras dudas
Deja una respuesta