Removing widget from home page when coming from specific landing page

There is a function called wp_get_referrer that you can use to see from which page a user is reaching the home page. Usage:

if (is_home() && (wp_get_referrer() == 'url/subscription/page')) {
  ... show page without widget
  }
else {
  ... show page with widget
  }

Now, there is no built in way to use this condition to show/hide a widget. So, there are roughtly two possibilities:

  1. If you have built the widget yourself, you can put the condition inside the widget and show nothing if the condition is met.
  2. Otherwise, your best course of action is to build a child theme where you conditionally register a sidebar to put the widget in. If the condition is met, there will be no sidebar and hence no widget.