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' );