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.
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?, #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
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'app/controllers/spree/newsletter_subscribers_controller.rb', line 7 def create user = Spree.user_class.find_or_initialize_by(email: [:email]) if user.new_record? && user.respond_to?(:password) && user.respond_to?(:password_confirmation) user.password ||= SecureRandom.hex(16) # we need to set a password to pass validation user.password_confirmation ||= user.password end user.accepts_email_marketing = true if user.new_record? || try_spree_current_user == user if user.save track_event('subscribed_to_newsletter', { email: user.email, user: user }) flash[:success] = Spree.t('storefront.newsletter_subscribers.success') else flash[:error] = user.errors..to_sentence.presence || Spree.t('something_went_wrong') end respond_to do |format| format.html { redirect_to spree.root_path } format.turbo_stream end end |