unsubscribe and added zip for newletter marketing
This commit is contained in:
@@ -21,8 +21,7 @@ class Supporter
|
|||||||
field :coordinates, type: Array
|
field :coordinates, type: Array
|
||||||
field :comments, type: String
|
field :comments, type: String
|
||||||
field :language, type: String
|
field :language, type: String
|
||||||
field :email2, type: String
|
field :unsubscribed, type: Boolean, default: false
|
||||||
field :email3, type: String
|
|
||||||
field :duplicate, type: Boolean, default: false
|
field :duplicate, type: Boolean, default: false
|
||||||
|
|
||||||
validates :first_name, presence: true
|
validates :first_name, presence: true
|
||||||
|
|||||||
@@ -1,20 +1,28 @@
|
|||||||
class MailChimpBatchUpdate
|
class MailChimpBatchUpdate
|
||||||
def self.update_all(api_key, list_id)
|
def initialize(api_key, list_id)
|
||||||
|
@mailchimp = Mailchimp::API.new(api_key)
|
||||||
|
@list_id = list_id
|
||||||
|
end
|
||||||
|
|
||||||
|
def update_all
|
||||||
subscribers = []
|
subscribers = []
|
||||||
mailchimp = Mailchimp::API.new(api_key)
|
|
||||||
|
|
||||||
Supporter.each_with_index do |supporter, index|
|
Supporter.each_with_index do |supporter, index|
|
||||||
subscribers.push(subscriber supporter)
|
subscribers.push(subscriber supporter)
|
||||||
if index.modulo(20) == 0
|
if index.modulo(20) == 0
|
||||||
mailchimp.lists.batch_subscribe(list_id, subscribers, false, true, false)
|
batch_subscribe(subscribers)
|
||||||
subscribers = []
|
subscribers = []
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
mailchimp.lists.batch_subscribe(list_id, subscribers, false, true, false)
|
batch_subscribe(subscribers)
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.subscriber(supporter)
|
def batch_subscribe(subscribers)
|
||||||
|
@mailchimp.lists.batch_subscribe(@list_id, subscribers, false, true, false)
|
||||||
|
end
|
||||||
|
|
||||||
|
def subscriber(supporter)
|
||||||
{ 'EMAIL' => { 'email' => supporter.email }, 'language' => supporter.language, :EMAIL_TYPE => 'html',
|
{ 'EMAIL' => { 'email' => supporter.email }, 'language' => supporter.language, :EMAIL_TYPE => 'html',
|
||||||
:merge_vars => {
|
:merge_vars => {
|
||||||
'EMAIL' => supporter.email,
|
'EMAIL' => supporter.email,
|
||||||
@@ -23,7 +31,16 @@ class MailChimpBatchUpdate
|
|||||||
'SUPPORT' => supporter.support,
|
'SUPPORT' => supporter.support,
|
||||||
'MEMBERSHIP' => supporter.li_membership.to_s,
|
'MEMBERSHIP' => supporter.li_membership.to_s,
|
||||||
'AGE' => supporter.age_category,
|
'AGE' => supporter.age_category,
|
||||||
'LANG' => supporter.language
|
'LANG' => supporter.language,
|
||||||
} }
|
'ZIP' => supporter.zip } }
|
||||||
|
end
|
||||||
|
|
||||||
|
def update_unsubscibed
|
||||||
|
unsubscribed_members = @mailchimp.lists.members(@list_id, 'unsubscribed', limit: 100)
|
||||||
|
unsubscribed_members['data'].each do |member|
|
||||||
|
Supporter.where(email: member['email']).each do |supporter|
|
||||||
|
supporter.update_attributes unsubscribed: true
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user