Envíe una notificación por correo electrónico al cliente cuando se aplique un código de cupón específico en WooCommerce

2 minutos de lectura

avatar de usuario
lukaxzy

Estoy tratando de enviar un correo electrónico al cliente después de que haya usado un código de promoción específico ‘CLASE GRATUITA’ al pagar.

Lo que hago es enviar al cliente un código ‘CLASEGRATIS’ después de registrarse. Quiero que el cliente reciba un mensaje personalizado adicional después de usar ese código.

Basado en Enviar una notificación por correo electrónico cuando se aplica un código de cupón específico en el código de respuesta de WooCommerce, esto es lo que he hecho hasta ahora, pero no funciona.

add_action( 'woocommerce_applied_coupon', 'custom_email_on_applied_coupon', 10, 1 );
function custom_email_on_applied_coupon( $coupon_code ){
    if( $coupon_code == 'FREECLASS' ){
    
    
    // Get user billing email
    global $user_login;
    $user = get_user_by('login', $user_login );
    $email = $user->billing_email;
    
    
        $to = "$email"; // Recipient
        $subject = sprintf( __('Coupon "%s" has been applied'), $coupon_code );
        $content = sprintf( __('The coupon code "%s" has been applied'), $coupon_code );

        wp_mail( $to, $subject, $content );
    }
}

Este es mi primer proyecto de WooCommerce, por lo que agradecería mucho su ayuda.

avatar de usuario
7uc1f3r

No hay necesidad de usar variables globales, a través de $user_id puedes conseguir el WC_Cliente Objeto de instancia y luego la dirección de correo electrónico de facturación

  • wp_mail() – Envía un correo electrónico, similar a la función de correo de PHP

Entonces obtienes:

function action_woocommerce_applied_coupon( $coupon_code ) {
    // NOT logged in, return
    if ( ! is_user_logged_in() ) return;
    
    // Compare
    if ( $coupon_code == 'freeclass' ) {
        // Get user ID
        $user_id = get_current_user_id();
        
        // Get the WC_Customer instance Object
        $customer = New WC_Customer( $user_id );
        
        // Billing email
        $email = $customer->get_billing_email();
        
        // NOT empty
        if ( ! empty ( $email ) ) {
            // Recipient
            $to = $email;
            $subject = sprintf( __('Coupon "%s" has been applied', 'woocommerce' ), $coupon_code );
            $content = sprintf( __('The coupon code "%s" has been applied by a customer', 'woocommerce' ), $coupon_code );
            $headers = array( 'Content-Type: text/html; charset=UTF-8' );

            wp_mail( $to, $subject, $content, $headers );
        }
    }
}
add_action( 'woocommerce_applied_coupon', 'action_woocommerce_applied_coupon', 10, 1 );

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad