WooCommerce 3 : Inclûre le nom des variations de produits lors de l’ajout au panier

Message d'ajout au panier avec Variations dans WooCommerce 3
WooCommerce 3 Variations de produits dans le message de l’ajout au panier

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;
}

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *