Home > Net >  How to replace product_name by product_sku on Add to cart message
How to replace product_name by product_sku on Add to cart message

Time:09-27

By default, this message line will be:

Product product_name has been added to cart

I want to change product_name to product_sku. Is there any way to do it? Thank you very much!

Note: this is the code I use to edit the message content, but it doesn't add product_sku

add_filter ( 'wc_add_to_cart_message_html', 'wc_add_to_cart_message_custom', 10, 2 );

function wc_add_to_cart_message_custom( $message, $products ) {
    if ( empty( $products ) ) {
        return $message;
    }

    foreach( $products as $product_id => $qty ) {
        $titles[] = get_the_title( $product_id );
    }

    $titles = array_filter( $titles );
    $added_text = sprintf( _n( 'product %s', 'product %s', sizeof( $titles ), 'woocommerce' ), wc_format_list_of_items( $titles ) );
    $message = sprintf( '%s <img src="images/Success.svg" style="width: 24px"> <a style="font-weight: 800">Added: </a>%s', esc_html__( '', 'woocommerce' ), esc_html( $added_text ));

    return $message;
}

CodePudding user response:

instead of collecting the product "titles" ie names, you can collect their SKUs instead.

add_filter ( 'wc_add_to_cart_message_html', 'wc_add_to_cart_message_custom', 10, 2 );

function wc_add_to_cart_message_custom( $message, $products ) {
    if ( empty( $products ) ) {
        return $message;
    }

    foreach( $products as $product_id => $qty ) {
        // get product object from ID
        $product = wc_get_product( $product_id );
        // add product SKU to array
        $skus[] = $product->get_sku();
         
    }

    $skus = array_filter( $skus );
    $added_text = sprintf( _n( 'product %s', 'product %s', sizeof( $skus ), 'woocommerce' ), wc_format_list_of_items( $skus ) );
    $message = sprintf( '%s <img src="images/Success.svg" style="width: 24px"> <a style="font-weight: 800">Added: </a>%s', esc_html__( '', 'woocommerce' ), esc_html( $added_text ));

    return $message;
}
  • Related