Ocultar cupones en el carrito y finalizar compra

Ocultemos el espacio para ingresar cupones (cupon form).

No olvides que este bloque de código va en el archivo functions.php o utilizando el plugin de Code Snippets.

Ocultar cupones de Carrito de compras.

function marcode_hide_cupon_form_cart( $enabled ) { 
// Primero validaremos que nos encontremos en el carrito
    if (is_cart()) { 
// Despues si todo se cumple cambiaremos el parametro que recibimos a FALSE
        $enabled =false;  
    } 
// Por ultimo regresamos nuestro dato.
    return $enabled;
}
add_filter( 'woocommerce_coupons_enabled', 'marcode_hide_cupon_form_cart' );

Ocultar cupones de Finalizar Compra

function marcode_hide_cupon_form_checkout( $enabled ) { 
// Primero validaremos que nos encontremos en el carrito
    if (is_checkout()) { 
// Despues si todo se cumple cambiaremos el parametro que recibimos a FALSE
        $enabled =false;  
    } 
// Por ultimo regresamos nuestro dato.
    return $enabled;
}
add_filter( 'woocommerce_coupons_enabled', 'marcode_hide_cupon_form_checkout' );

Ocultar cupones dependiendo del rol de usuario

Ahora hagamos esto mas divertido y hagamos esto con roles de usuario.

 function marcode_hide_cupon_form_cart_and_checkout_user_rol( $enabled ) { 
// 1- Validamos que la pagina sea Carrito o Finalizar Compra.
    if ( is_checkout() || is_cart()) { 
// 2- Validamos que el usuario se encuentre logueado.
        if(is_user_logged_in()) {
// 3- Si el usuario esta logueado entonces obtenemos los siguentes datos.
            $usuario = wp_get_current_user(); // Usuario Actual
            $rolUsuario = $usuario ->roles;   // Roles de usuario
            //$rolUsuario[0];                 // Rol 1 del usuario  
        } 
// 4- Ahora procedemos a realiar nuestra validacion del rol que no queremos que vea la forma de cupones.
        if($rolUsuario[0] == 'subscriber'){
// 5- Aqui cambiaremos el parametro $enabled a FALSE para posteriormente retornarlo. Por seguridad limpiaremos los cupones y recalcularemos los totales.
            $enabled =false;                   // Cambiamos el parametro a FALSE
            WC()->cart->remove_coupons();      // Removemos todos los cupones
            WC()->cart->calculate_totals();    // Recalculamos los totales
        } 
    } 
// 6- Retornamos el parametro $enabled.
    return $enabled;
}
add_filter( 'woocommerce_coupons_enabled', 'marcode_hide_cupon_form_cart_and_checkout_user_rol' );

Ocultar cupones dependiendo del rol de usuario y producto especifico

Hagamos esto un poquito mas intenso. Ahora validaremos el usuario y si existe algún producto en especifico.

function marcode_hide_cupon_form_cart_and_checkout_user_rol_and_product( $enabled ) {

// 1- Validamos que la pagina sea Carrito o Finalizar Compra.
    if ( is_checkout() || is_cart()) {

// 2- Validamos que el usuario se encuentre logueado.
        if(is_user_logged_in()) {

// 3- Si el usuario esta logueado entonces obtenemos los siguentes datos.
            $usuario = wp_get_current_user(); // Usuario Actual
            $rolUsuario = $usuario ->roles;   // Roles de usuario
            //$rolUsuario[0];                 // Rol 1 del usuario
        }

// 4- Declaramos una variable y la establecemos como FALSE, más adelante nos sera de utilidad.
        $encontrado =false;

// 5- Ahora recorreremos el carrito de compras y validaremos si el producto existe. Producto de ejemplo (86)
        foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
            $product_id = $cart_item['product_id']; // Vamos obteniendo el ID del producto

            if($product_id == 86){                  // Comparamos si el ID del producto coincide con el de ejemplo (86)
                $encontrado = true;                 // En caso de que sea igual cambiamos la variable $encontrado a TRUE
                break;                              // Y damos alto al ciclo foreach
            }
        }

// 6- Ahora procedemos a realiar nuestra validacion del rol que no queremos que vea la forma de cupones.
        if($encontrado || $rolUsuario[0] == 'subscriber'){

// 7- Aqui cambiaremos el parametro $enabled a FALSE para posteriormente retornarlo. Por seguridad limpiaremos los cupones y recalcularemos los totales.
            $enabled =false;                   // Cambiamos el parametro a FALSE
            WC()->cart->remove_coupons();      // Removemos todos los cupones
            WC()->cart->calculate_totals();    // Recalculamos los totales
        }
    }

// 8- Retornamos el parametro $enabled.
    return $enabled;
}
add_filter( 'woocommerce_coupons_enabled', 'marcode_hide_cupon_form_cart_and_checkout_user_rol_and_product' );

Deja un comentario

Share This