Class: Spree::NewsletterSubscribersController
- Inherits:
-
StoreController
- Object
- BaseController
- StoreController
- Spree::NewsletterSubscribersController
- Defined in:
- app/controllers/spree/newsletter_subscribers_controller.rb
Instance Method Summary collapse
-
#create ⇒ Object
POST /newsletter_subscribers.
-
#verify ⇒ Object
GET /newsletter_subscribers/verify?token=VERIFICATION_TOKEN.
Methods inherited from StoreController
#current_taxon, #default_products_sort, #permitted_products_params, #products_filters_params, #render_404_if_store_not_exists, #store_filter_names, #store_filter_names_hash
Methods included from AnalyticsHelper
#analytics_event_handlers, #track_event, #unsupported_event?, #visitor_id
Methods included from WishlistHelper
Methods included from PasswordProtected
Methods included from StorefrontHelper
#as_aspect_ratio, #page_description, #page_image, #paths_equal?, #render_storefront_partials, #show_account_pane?, #spree_storefront_base_cache_key, #spree_storefront_base_cache_scope, #svg_country_icon, #tailwind_classes_for
Methods included from ThemeConcern
#default_url_options, #set_theme_view_paths
Instance Method Details
#create ⇒ Object
POST /newsletter_subscribers
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'app/controllers/spree/newsletter_subscribers_controller.rb', line 8 def create subscriber = Spree::NewsletterSubscriber.subscribe(email: [:email], user: try_spree_current_user) if subscriber.errors.any? flash[:error] = subscriber.errors..to_sentence.presence || Spree.t('something_went_wrong') elsif subscriber.verified? && subscriber.previous_changes.blank? flash[:notice] = Spree.t('storefront.newsletter_subscribers.already_subscribed') else track_event('subscribed_to_newsletter', { email: subscriber.email, user: try_spree_current_user }) flash[:success] = Spree.t('storefront.newsletter_subscribers.success') end respond_to do |format| format.html { redirect_to spree.root_path } format.turbo_stream end end |
#verify ⇒ Object
GET /newsletter_subscribers/verify?token=VERIFICATION_TOKEN
27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'app/controllers/spree/newsletter_subscribers_controller.rb', line 27 def verify raise ActiveRecord::RecordNotFound if params[:token].blank? subscriber = ActiveRecord::Base.connected_to(role: :writing) do Spree::NewsletterSubscriber.verify(token: params[:token]) end if subscriber.verified? redirect_to spree.root_path, notice: Spree.t('storefront.newsletter_subscribers.verified') else redirect_to spree.root_path, alert: Spree.t('storefront.newsletter_subscribers.verification_failed') end end |