¿Cómo deshabilitar/ocultar la página de categorías de woocommerce?

2 minutos de lectura

avatar de usuario
Zed0121

Usé el siguiente código para ocultar las páginas de un solo producto en woocommerce, que funcionó perfectamente. Cualquiera que intente acceder a las páginas de un solo producto será redirigido a la página de inicio.

Ahora quiero ocultar las páginas de categorías. No los necesito ya que estoy usando el código abreviado de categoría para mostrar el producto en otras páginas. ¿Alguien puede ayudar con el código requerido?

//Removes links
add_filter( 'woocommerce_product_is_visible','product_invisible');
function product_invisible(){
    return false;
}

//Remove single page
add_filter( 'woocommerce_register_post_type_product','hide_product_page',12,1);
function hide_product_page($args){
    $args["publicly_queryable"]=false;
    $args["public"]=false;
    return $args;
}

Tomado de: ¿Cómo deshabilitar/ocultar la página de un solo producto de woocommerce?

  • ¿Dónde está tu HTML?

    – BASEER HAIDER JAFRI

    30 de noviembre de 2017 a las 16:28

  • @BASEERHAIDER HTML no es necesario para esto. Este es un problema de PHP.

    – ProEvilz

    30 de noviembre de 2017 a las 16:53

Puede intentar usar esta función personalizada, que redirigirá a la página de la tienda, cuando se llame a una página de archivo de categoría de producto:

add_action( 'template_redirect', 'wc_redirect_to_shop');
function wc_redirect_to_shop() {
    // Only on product category archive pages (redirect to shop)
    if ( is_product_category() ) {
        wp_redirect( wc_get_page_permalink( 'shop' ) );
        exit();
    }
}

El código va en el archivo function.php de su tema secundario activo (o tema activo) o en cualquier archivo de complemento.

Probado y funciona

Como no creo que desee deshabilitar la funcionalidad de categorías de productos, sino solo la página de archivo relacionada…

avatar de usuario
Niket Joshi

add_action( 'woocommerce_product_query', 'bbloomer_hide_products_category_shop' );

function bbloomer_hide_products_category_shop ($q) {

$tax_query = (array) $q->get( 'tax_query' );

$tax_query[] = array(
       'taxonomy' => 'product_cat',
       'field' => 'slug',
       'terms' => array( 'chairs' ), // Category slug here
       'operator' => 'NOT IN'
);


  $q->set( 'tax_query', $tax_query );

}

por favor revise este ejemplo.

Si desea posiblemente “ocultar” completamente la página y mostrar la página “Página no encontrada” (error 404), puede agregar lo siguiente en su archivo “functions.php”:

function display_404_page_instead_of_products_category_page() {
  if ( is_product_category() ) {
    global $wp_query;
    $wp_query->set_404();
    status_header(404);
  }
}
add_action( 'wp', 'display_404_page_instead_of_products_category_page' );

Si también desea ocultar una página de etiquetas de productos, simplemente modifique la condición en consecuencia:

if ( is_product_category() || is_product_tag() ) {
...
}

(También puede ocultar, por ejemplo, una página del navegador de imágenes si lo desea, solo use is_attachment() función en ese caso.)

Gracias @LoicTheAztec por informarme sobre la función “is_product_category”.

¿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