textos texto programar plantilla para español editar desde crear como cero carrito cambiar php wordpress woocommerce wordpress-theming

php - texto - woocommerce español



2 diseños para una tienda de WooCommerce (1)

Tengo categorías llamadas "Collectie" y "Shop", lo que quiero es diferentes diseños para los niños de ambas categorías.

Ya probé esto con la función template_include como esta:

function lab5_template_include( $template ) { if ( category_has_children(''collectie'')) { $template = get_stylesheet_directory() . ''/woocommerce/archive-product-collectie.php''; }elseif ( is_product_category(''shop'')) { $template = get_stylesheet_directory() . ''/woocommerce/archive-product-shop.php''; } return $template; }

¿Cómo puedo hacer eso?

EDITAR

Lo resolví con la solución de https://wordpress.org/support/topic/different-page-layouts-for-category-vs-subcategory

Agregué las siguientes líneas a taxonomy-product_cat.php

// We need to get the top-level category so we know which template to load. $get_cat = $wp_query->query[''product_cat'']; // Split $all_the_cats = explode(''/'', $get_cat); // How many categories are there? $cat_count = count($all_the_cats); // // All the cats say meow! // // Define the parent $parent_cat = $all_the_cats[0]; // Collectie if ( $parent_cat == ''collectie'' ) woocommerce_get_template( ''archive-product-collectie.php'' ); // Shop elseif ( $parent_cat == ''shop'' ) woocommerce_get_template( ''archive-product.php'' );


Creo que sería mejor ejecutar un ciclo while para determinar el nombre de la categoría de nivel primario. Luego puede compararlo con las diferentes categorías principales que desea mostrar de forma diferente.

edit lab5_template_include() debería usar is_product_category() lugar de is_product_taxonomy() que devuelve true en categoría de producto y archivos de etiqueta.

function lab5_template_include( $template ) { if( is_product_category()){ $slug = get_query_var(''product_cat''); $cat = get_term_by( ''slug'', $slug, ''product_cat'' ); $catParent = so_top_product_category_slug($cat); // locate the new templates if ( ''collectie'' == $catParent ) { $new_template = locate_template( array( ''woocommerce/archive-product-collectie.php'' ) ); } elseif ( ''shop'' == $catParent ) ) { $new_template = locate_template( array( ''woocommerce/archive-product-shop.php'' ) ); } // set the new template if found if ( '''' != $new_template ) { $template = $new_template ; } } return $template; } add_filter(''template_include'', ''lab5_template_include'', 20 );

edita correcciones de errores y mejora la eficiencia de so_top_product_category_slug() . Ahora probado y funcionando.

// get the top-level parent product category from a term object or term slug function so_top_product_category_slug($cat) { if( is_object( $cat ) ){ $catid = $cat->term_id; } else { $cat = get_term_by( ''slug'', $cat, ''product_cat'' ); $catid = $cat->term_id; } $parentId = $cat->parent; $parentSlug = $cat->slug; while ($parentId > 0) { $cat = get_term_by( ''id'', $parentId, ''product_cat'' ); $parentId = $cat->parent; // assign parent ID (if exists) to $catid $parentSlug = $cat->slug; } return $parentSlug; }