✅ Cupones Automáticos con Caducidad después de Compra en Woocommerce (Sin Plugins)

Este código personalizado, diseñado para sitios web que utilizan WordPress y la plataforma de comercio electrónico WooCommerce, busca mejorar la experiencia del usuario después de completar una compra en línea. Aprovecha los ganchos de WooCommerce, eventos que desencadenan acciones específicas, para ejecutar funciones clave en momentos cruciales del proceso de compra.

Cuando un usuario finaliza una compra, la función principal del código se activa. Esta función verifica si el monto total de la orden supera los 100 euros. En caso afirmativo, genera un código de descuento único. Este código se convierte en un cupón de WooCommerce con configuraciones específicas, como un descuento del 50% y una vigencia de 15 días a partir de la fecha de compra.

El código va más allá de la funcionalidad básica al proporcionar una experiencia visualmente agradable. Integra FontAwesome para mejorar la presentación de iconos en el frontend y aplica estilos personalizados al mensaje de agradecimiento mostrado en la página de confirmación de compra. Este mensaje agradece al usuario por su compra y le proporciona el nuevo código de descuento, asegurando una comunicación clara y atractiva.

En síntesis, este código no solo automatiza la generación de descuentos, sino que también se preocupa por la presentación visual y la usabilidad post-compra, contribuyendo a una experiencia de usuario más completa y satisfactoria.

cupones automaticos despues de compra woocommerce sin plugins

El siguiente código tienes que agregarlo en el functions.php de tu tema hijo o utilizar un plugin como CODE SNIPPETS.

<?php
// Hook para ejecutar la función después de que se completa una compra
add_action('woocommerce_thankyou', 'generar_cupon_descuento_despues_de_compra', 5, 1);

function generar_cupon_descuento_despues_de_compra($order_id) {
    // Obtener la orden
    $order = wc_get_order($order_id);

    // Verificar si el total de la orden es superior a 100 euros
    if ($order->get_total() > 100) {
        // Generar un código de descuento único
        $codigo_descuento = uniqid('descuento_', true);

        // Crear un cupón en WooCommerce
        $coupon = array(
            'post_title' => $codigo_descuento,
            'post_content' => '',
            'post_status' => 'publish',
            'post_author' => 1,
            'post_type' => 'shop_coupon'
        );

        // Insertar el cupón en la base de datos
        $coupon_id = wp_insert_post($coupon);

        // Establecer la cantidad de descuento y otros parámetros del cupón
        update_post_meta($coupon_id, 'discount_type', 'percent');
        update_post_meta($coupon_id, 'coupon_amount', 50); // 50% de descuento
        update_post_meta($coupon_id, 'individual_use', 'yes');
        update_post_meta($coupon_id, 'product_ids', '');
        update_post_meta($coupon_id, 'exclude_product_ids', '');
        update_post_meta($coupon_id, 'usage_limit', '1');

        // Establecer la fecha de caducidad del cupón (15 días después de la compra)
        $fecha_caducidad = strtotime('+15 days', current_time('timestamp'));
        update_post_meta($coupon_id, 'expiry_date', $fecha_caducidad);

        // Mostrar el código de descuento en la página de gracias
echo '<div class="mensaje-agradecimiento">
        <p><i class="fas fa-ticket-alt"></i>¡Gracias por tu compra! Tu código de descuento del 50% para la próxima compra es: <br><span>' . $codigo_descuento . '</span></p>
        <p><i class="fas fa-info"></i>Recuerda que tienes 15 días disponibles a partir de hoy para utilizarlo.</p>
      </div>';


    }
}

function cargar_font_awesome() {
    // Verificar si FontAwesome ya está cargado
    if (!wp_style_is('font-awesome', 'enqueued')) {
        // Agregar FontAwesome si aún no está cargado
        wp_enqueue_style('font-awesome', 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css', array(), '5.15.4');
    }
}

// Hook para cargar FontAwesome en el frontend
add_action('wp_enqueue_scripts', 'cargar_font_awesome');


function agregar_estilos_personalizados() {
    echo '<style>
        .mensaje-agradecimiento {
            background-color: #7D9C70;
            padding: 20px;
            margin: 30px;
            color: black;
            text-align: center;
        }

        .mensaje-agradecimiento p {
            font-size: 18px;
            margin: 0 0 15px;
			color:white;
        }

        .mensaje-agradecimiento i {
            color: black;
            margin-right: 10px;
        }

        .mensaje-agradecimiento span {
            color: black;
        }
    </style>';
}

// Hook para ejecutar la función
add_action('wp_head', 'agregar_estilos_personalizados');
Lenguaje del código: HTML, XML (xml)

Entendiendo el Código

  1. Hook para ejecutar la función después de una compra:
    • Se establece un gancho (‘woocommerce_thankyou’) que ejecuta la función generar_cupon_descuento_despues_de_compra después de que se completa una compra en WooCommerce.
  2. Función generar_cupon_descuento_despues_de_compra:
    • Obtiene la orden correspondiente al ID de la orden.
    • Verifica si el total de la orden es superior a 100 euros.
    • Si es así, genera un código de descuento único, crea un cupón en WooCommerce y establece parámetros como el tipo de descuento (50%), el uso individual, la cantidad de uso limitado a 1 vez, y una fecha de caducidad de 15 días a partir de la compra.
    • Muestra un mensaje de agradecimiento en la página de gracias, que incluye el código de descuento generado.
  3. Función cargar_font_awesome:
    • Verifica si la hoja de estilo de FontAwesome no está cargada.
    • Si no lo está, la agrega al frontend.
  4. Hook para cargar FontAwesome en el frontend:
    • Se establece un gancho que llama a la función cargar_font_awesome en el frontend, asegurando que FontAwesome esté disponible.
  5. Función agregar_estilos_personalizados:
    • Imprime estilos CSS personalizados en la etiqueta <style> en el <head> del documento. Estos estilos se aplican al mensaje de agradecimiento mostrado en la página de gracias.
  6. Hook para ejecutar la función agregar_estilos_personalizados:
    • Se establece un gancho que llama a la función agregar_estilos_personalizados en el <head> del documento, asegurando que los estilos personalizados se carguen correctamente.

Si necesitas adaptar el código a las necesidades de tu proyecto o agregar una funcionalidad específica a tu página web no dudes en contactar conmigo.

Nos vemos en el siguiente tutorial.

Un saludo.

5/5 - (4 votos)
Compartir Artículo

Un comentario

  1. Fran Salas Master WP 1 año atrás

    Deja tus opiniones o dudas en los comentarios.

¿Tienes una duda o sugerencia sobre este artículo?

Puedes dejar un comentario de forma anónima, sin necesidad de registrarte ni proporcionar ningún dato personal. Tu mensaje se publicará como “Usuario Anónimo No Premium”, un perfil que agrupa a todos los visitantes no registrados.

Importante: para evitar el spam automático, todos los comentarios anónimos deben comenzar con el símbolo #. Ejemplo: # Tengo una duda sobre los shortcodes personalizados...

Este espacio está destinado exclusivamente a preguntas concretas, dudas o sugerencias relacionadas con el contenido del artículo. Por respeto a los demás lectores, no se publicarán temas sin relación.

Privacidad y normas:
  • No tienes que agregar tu nombre, correo ni ningún otro dato identificativo.
  • No se permiten enlaces en comentarios anónimos.
  • No se permiten símbolos especiales como < o > (menor y mayor que), ya que se consideran intentos de insertar código y serán bloqueados.
  • Todos los comentarios anónimos pasan por revisión antes de ser publicados y solo se aprobarán si aportan valor al contenido del artículo.
¿Quieres comentar con tu nombre y que tu mensaje se publique al instante? Inicia sesión o regístrate.

Deja un comentario

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

0%