Afficher l'état du stock de variation sur les produits à variable de liste déroulante unique dans Wocommerce 3 [fermé]
Nov 25 2020
J'utilise Afficher l'état du stock à côté de chaque valeur d'attribut dans le code de réponse des produits variables WooCommerce pour afficher l'état du stock de variation sur la liste déroulante d'attribut de produit unique pour les pages de produits variables.
Cela fonctionne bien, mais prend trop de temps pour charger un produit.
Comment pourrais-je optimiser le code pour le rendre plus rapide?
Réponses
1 LoicTheAztec Nov 25 2020 at 15:37
Utilisez plutôt ce qui suit, qui sera un peu plus léger (les produits variables devraient donc se charger rapidement) :
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;
}