Mostrar estado de stock de variación en productos de una sola variable desplegable en Wocommerce 3 [cerrado]
Nov 25 2020
Estoy usando Mostrar estado de stock junto a cada valor de atributo en el código de respuesta de productos variables de WooCommerce para mostrar el estado de stock de variación en el menú desplegable de atributos de producto único para páginas de productos variables.
Esto funciona bien, pero lleva demasiado tiempo cargar un producto.
¿Cómo podría optimizar el código para que se cargue más rápido?
Respuestas
1 LoicTheAztec Nov 25 2020 at 15:37
En su lugar, use lo siguiente, que será un poco más liviano (por lo que los productos variables deben cargarse rápidamente) :
add_filter( 'woocommerce_variation_option_name', 'customizing_variations_terms_name' );
function customizing_variations_terms_name( $term_name ){ global $product;
if( is_admin() ) return $term_name; // Only on frontend single products // Iterating through each visible product variation Ids foreach( $product->get_visible_children() as $variation_id ){ $variation = new WC_Product_Variation( $variation_id ); $stock_status = $variation->get_stock_status(); $stock_qty = $variation->get_stock_quantity(); // The attributes taxonomy key and slug value for this variation $attributes = $variation->get_attributes(); // Caution: Works only for 1 attribute set in the product if(count($attributes) == 1 ) {
$attributes_keys = array_keys($attributes);
$attr_taxonomy = str_replace('attribute_', '', reset($attributes_keys) );
if( $variation->get_attribute( $attr_taxonomy ) === $term_name ) { break; // stop the loop } } $term_name .= ' - ' . $stock_status; $term_name = $stock_qty > 0 ? $term_name . ' ('.$stock_qty.')' : $term_name;
}
return $term_name;
}