I'm not sure I did this correctly after having read through the woocommerce_add_$NOTICE_TYPE
hook. What I want to do is change the Coupon code applied successfully
message into my own custom text like this:
The %coupon_name% promotion code has been applied and redeemed successfully.
But I don't know how to get the coupon name.
add_filter( 'woocommerce_add_notice', function( $message ){
// get the coupon name here
if( $message == 'Coupon code applied successfully.' )
$message = 'The %coupon_name% promotion code has been applied and redeemed successfully.';
return $message;
});
There is a specific hook for "success" notice when applying or removing a coupon code:
add_filter( 'woocommerce_coupon_message', 'filter_woocommerce_coupon_message', 10, 3 );
function filter_woocommerce_coupon_message( $msg, $msg_code, $coupon ) {
// $applied_coupons = WC()->cart->get_applied_coupons(); // Get applied coupons
if( $msg === __( 'Coupon code applied successfully.', 'woocommerce' ) ) {
$msg = sprintf(
__( "The %s promotion code has been applied and redeemed successfully.", "woocommerce" ),
'<strong>' . $coupon->get_code() . '</strong>'
);
}
return $msg;
}
Code goes in functions.php file of your active child theme (or active theme). Tested and works.