Notre client Prestodeco® nous a demandé d’inclure les variations de produits dans le message d’ajout au panier de WooCommerce.
Dans le fichier functions.php de votre thème, ajoutez le code suivant :
Ce code se chargera de récupérer les variations de produits et de les ajouter dans le message d’ajout au panier de WooCommerce.
add_filter ( 'wc_add_to_cart_message_html', 'filter_wc_add_to_cart_message_html', 10, 2 );
function filter_wc_add_to_cart_message_html( $message, $products ) {
$product_id = key($products);
$count = 0;
$variation_id = isset( $_REQUEST[ 'variation_id' ] ) ? $_REQUEST[ 'variation_id' ] : null;
// si on ne récupère pas de variations, alors on retourne simplement le message
if ($variation_id == null) {
return $message;
}
$var_product = wc_get_product( $variation_id );
$variations = $var_product->get_variation_attributes();
$attributes = $var_product->get_attributes();
$variations_str = '';
// on récupère toutes les variations
if ( is_array( $variations ) ) {
foreach( $variations as $key => $value ) {
$key = str_replace( 'attribute_', '', $key );
$attribute = $attributes[$key];
$variations_str .= ', ' . $attribute;
}
}
// on récupère la quantité
foreach ( $products as $product_id => $qty ) {
$titles[] = ( $qty > 1 ? absint( $qty ) . ' × ' : '' ) . sprintf( _x( '“%s”', 'Item name in quotes', 'woocommerce' ), strip_tags( get_the_title( $product_id ) ) );
$count += $qty;
}
$product_title = '' . get_the_title( $product_id ) . ''; // Get the main product title
$product_url = get_permalink( $product_id );
$product_title .= $variations_str;
//$product_title .= substr($variations_str, 0, -1);
$added_text = sprintf( '%s X %s ajouté au panier !' , $count, $product_url, $product_title );
$message = sprintf( '%s %s', wc_get_page_permalink( 'cart' ), __( 'View Cart', 'woocommerce' ), $added_text );
return $message;
}