Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WooCommerce Notice Messages, how do I edit them?

I'm trying to figure out where WooCommerce creates it's messages for when there is a success, error or notice in WooCommerce. I want to edit those messages to fit the scenario more neatly and also edit the HTML. Where are these messages located and how do I edit them?

like image 201
Majo0od Avatar asked Oct 04 '14 02:10

Majo0od


People also ask

How do I show my WooCommerce notice?

You need to use dedicated wc_print_notices() function, that displays Woocommerce notices. This function is hooked or used in woocommerce templates for that purpose. To make the WooCommerce notice actives in the page of your short code you need to add inside your shortcode this wc_print_notices() function.

What is a store notice WooCommerce?

WooCommerce stores frequently use the store notice to communicate with their clients about informational messages such as delivery delays to a specific zone due to weather conditions, free shipping, promotions, events, holiday special, or any other marketing initiatives by displaying a site-wide message.

How do I change my notice color in WooCommerce?

Change Color of the WooCommerce Store Notice With WordPress 4.7 you can now change colors like this with the customizer. In the admin of your site go to Appearance -> Customize.


4 Answers

Many of them are directly in the plugin files - unfortunately. Some messages are tied to filter hooks that allow you to edit them without messing with plugin files but that's not always the case.

The message you wanted to change was "Product Name was successfully added to your cart". This one is set in the function wc_add_to_cart_message in wc-cart-functions.php and this function allows you to change it using a filter:

wc_add_notice( apply_filters( 'wc_add_to_cart_message', $message, $product_id ) );

So in your functions.php file you could add something like:

add_filter('wc_add_to_cart_message', 'handler_function_name', 10, 2);
function handler_function_name($message, $product_id) {
    return "Thank you for adding product" . $product_id;
}
like image 140
Yavor Avatar answered Oct 19 '22 13:10

Yavor


Open the plugin files and search for wc_add_notice:

This function has a filter:

apply_filters( 'woocommerce_add_' . $notice_type, $message );

The $notice_type is the second argument passed in all those occurrences.

Using something like this should work:

add_filter( 'woocommerce_add_error', function( $message ) {
    if( $message == 'Some message' )
        $message = '';

    return $message;
});
like image 22
brasofilo Avatar answered Oct 19 '22 13:10

brasofilo


The filters mentioned here work fine for editing the message itself, but if you want to edit the actual HTML markup containing the notice message, then you need to use the notice templates under templates > notices.

There are three different files here, each for the different kinds of notices. In my case, I wanted to add a class to the coupon applied successfully notice, so I copied success.php over into my theme file. My code then looked like below:

<?php foreach ( $messages as $message ) : ?>
    <?php 
        $om_css_class = "";
        if ( $message == "Coupon code applied successfully." ) {
            $om_css_class = "coupon-notice-msg";
        } 
    ?>
    <div class="woocommerce-message <?php echo $om_css_class; ?>"><?php echo wp_kses_post( $message ); ?></div>
<?php endforeach; ?>
like image 3
Ollie Murphy Avatar answered Oct 19 '22 12:10

Ollie Murphy


I came across this answer and was able to implement for a production site. This answer is related to woocommerce error codes notices. You need to find the codes in the separate class files (~woocommerce/includes/). For my purpose the code was in ~woocommerce/includes/class-wc-coupon.php

/**
 * Modify the coupon errors:
*/

 add_filter( 'woocommerce_coupon_error', 'wpq_coupon_error', 10, 2 );

 function wpq_coupon_error( $err, $err_code ) {
  return ( '103' == $err_code ) ? '' : $err;
 }

Thanks to this page: http://wpquestions.com/WooCommerce_Remove_Coupon_code_already_applied_error_message/10598

like image 3
user3795286 Avatar answered Oct 19 '22 12:10

user3795286