Ticker

6/recent/ticker-posts

Ad Code

Responsive Advertisement

Mostrar un mensaje en la primera compra en WooCommerce

Es posible que en algunos casos quieras incentivar futuras compras en tu tienda con WooCommerce mostrando un mensaje de un cupón de descuento para la próxima compra, en este artículo veremos cómo realizar esto a través de código.

 

Resultado Final

Al final queremos mostrar un mensaje en la primera compra del cliente, al momento de completar el pedio

Mostrar mensaje adicional en pedido completado

 
Y también cuando le llegue el correo de orden completada

Orden completada mensaje

 

Código para mostrar un mensaje en la primera compra

Mostraremos un mensaje tanto al finalizar la primera compra como en el correo de orden completada.

Puedes agregar el siguiente código como parte del archivo functions.php de tu tema hijo o usando algún plugin de Snippets.
El mensaje asume que ya tienes creado un cupón llamado PRIMERACOMPRA
// Código para mostrar mensaje al finalizar la primera compra
add_filter( 'woocommerce_thankyou_order_received_text', 'dcms_add_message_order_received', 10, 2 );
function dcms_add_message_order_received( $str, $order ): string {
        if ( count_current_user_orders() > 1 ) {
                return $str;
        }

        return $str . '<div class="woocommerce-message">
                                        Por ser tu primera compra puedes usar el cupón de descuento <strong>PRIMERACOMPRA</strong> para obtener un 10% de descuento en tu siguiente compra.
                                </div>';
}

// Código para agregar un mensaje al correo de la primera compra
add_action( 'woocommerce_email_order_details', 'dcms_add_message_order_details', 10, 4 );
function dcms_add_message_order_details( $order, $sent_to_admin, $plain_text, $email ) {
        if ( $sent_to_admin
             || $order->get_status() !== 'completed'
             || count_current_user_orders() > 1  ) {
                return;
        }

        echo '<p>Por ser tu primera compra puedes usar el cupón de descuento <strong>PRIMERACOMPRA</strong> 
                        para obtener un 10% de descuento en tu siguiente compra.</p>' ;
}

// Función auxiliar que devuelve la cantidad de órdenes válidas del cliente actual
function count_current_user_orders(): int {
        $args = array(
                'customer' => get_current_user_id(),
                'status'   => [ 'wc-completed', 'wc-on-hold' ],
        );

        return count( wc_get_orders( $args ) );
}

 

En el código anterior:

  • Con función auxiliar count_current_user_orders() contamos la cantidad de órdenes válidas que tiene un usuario, esta función la aislamos ya que será usada en diferentes partes del código.
  • Usamos el hook de filtro woocommerce_thankyou_order_received_text que hace referencia a la función dcms_add_message_order_received
  • La función count_current_user_orders recibe dos parámetros, hacemos una comprobación de la cantidad de órdenes
  • Para mostrar el mensaje simplemente concatenamos el mensaje al parámetro $str
  • El hook woocommerce_email_order_details, hace referencia a la función dcms_add_message_order_details
  • Desde esta función dcms_add_message_order_details podemos imprimir el mensaje, sin embargo antes hay que hacer comprobaciones

 

Conclusión

Como has podido comprobar, puedes añadir un mensaje para la primera orden del cliente, tanto cuando ha completado el proceso de compra, como cuando le ha llegado el correo de orden completada, y puedes hacerlo directamente a través de código.

 

La entrada Mostrar un mensaje en la primera compra en WooCommerce es un artículo reciente del sitio DecodeCMS.

Enregistrer un commentaire

0 Commentaires