You need to tell add_filter how many arguments it accepts (2) example:
add_filter('woocommerce_get_shop_coupon_data', array( $this, 'filter_woocommerce_get_shop_coupon_data' ), 10, 2 );
Be sure to enable WP_Debug – http://wpexplorer-themes.com/total/docs/enabling-wp-debug/ – on your server, because you should have gotten an error when trying to do this without the added argument.
Also I highly recommend using static classes when dealing with filters for easiser modification by developers using child themes or extra plugins. Example:
add_filter( 'woocommerce_get_shop_coupon_data', array( 'YOUR_CLASS_NAME', 'filter_woocommerce_get_shop_coupon_data' ), 10, 2 );
public static function filter_woocommerce_get_shop_coupon_data( $arg1, $arg2 ) {
var_dump($arg1);
var_dump($arg2);
return null;
}
This way a developer can always use this if needed:
remove_filter( 'woocommerce_get_shop_coupon_data', array( 'YOUR_CLASS_NAME', 'filter_woocommerce_get_shop_coupon_data' ), 10, 2 );
When using $this WordPress assigns a dynamic name and it’s harder to modify things if needed. Just a tip. Maybe not for this plugin bug for others 😉