WooCommerce coupon hook argument NULL when using filter woocommerce_get_shop_coupon_data

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 😉