Usar is_product_category() correctamente
20 jun 2018, 14:16:47
Vistas: 19.8K
Votos: 1
Tengo dos categorías de productos:
- MARKETING DIGITAL MULTILINGÜE (ID 75)
- CANALES DE VENTA INTERNACIONALES (ID 107)
Quiero ejecutar algún código mediante una condición if solo para estas dos categorías.
Intenté usar este código pero no funcionó:
if( is_product_category(107 || 75) ) {
// Obtener el objeto de la consulta
$term = get_queried_object();
// Obtener el padre
$parent = $term->parent;
if (!empty($parent)) {
$child_of = $parent;
} else {
$child_of = $term->term_id;
}
// Obtener términos
$terms = get_terms( array(
'taxonomy' => 'product_cat',
'child_of' => $child_of,
) );
if ($terms) {
foreach ( $terms as $category ) {
$category_id = $category->term_id;
$category_slug = $category->slug;
$category_name = $category->name;
$category_desc = $category->description;
echo '<div class="'.$category_slug.'">';
echo '<h2>'.$category_name.'</h2>';
if ($category_desc) {
echo '<p>'.$category_desc.'</p>';
}
// Argumentos para la consulta de productos
$products_args = array(
'post_type' => 'product',
'tax_query' => array(
array(
'taxonomy' => 'product_cat',
'field' => 'term_id',
'terms' => $category_id,
),
),
);
$products = new WP_Query( $products_args );
if ( $products->have_posts() ) { // solo iniciar si tenemos algunos productos
// INICIO del bucle normal de woocommerce
woocommerce_product_loop_start();
if ( wc_get_loop_prop( 'total' ) ) {
while ( $products->have_posts() ) : $products->the_post();
/**
* Hook: woocommerce_shop_loop.
*
* @hooked WC_Structured_Data::generate_product_data() - 10
*/
do_action( 'woocommerce_shop_loop' );
wc_get_template_part( 'content', 'product' );
endwhile; // fin del bucle.
}
woocommerce_product_loop_end();
// FIN del bucle normal de woocommerce
// Restaurar datos originales del post, quizás no sea necesario aquí (en un plugin podría ser necesario)
wp_reset_postdata();
}

Nimesh Deo
71
Todas las respuestas a la pregunta
3
0
is_product_category()
debe usarse únicamente en las páginas de archivo de categorías de WooCommerce, así que primero asegúrate de estar en un archivo de categoría.
en lugar del número de categoría, usa el nombre del slug de la categoría is_product_category('nombre-del-slug')
no es necesario ejecutar una condición OR (||), simplemente usa is_product_category('slug-de-categoria1','slug-de-categoria2')
para obtener el mismo resultado

Shamsur Rahman
591
20 jun 2018 14:46:31
Preguntas relacionadas
3
respuestas
1
respuestas