I want to be able to send emails to subscribers based on their time zone so all emails arrive at the same time of day.
I’ve set the attributes to the UTC ± hours based on the global time zones,
I have the chron job set to every 5 minutes.
I have the attribute set up so the subscriber can nominate their time zone but I can’t see how to make that happen.
My PHP skills are a little rusty but I don’t have any fear of getting into the code if that’s a requirement.
How do I send the same email to each subscriber at 9:00am in their time zone?
@lilRalph phplist doesn’t support sending at a time specific to each subscriber.
If the subscribers belong to only a small number of timezones then you could create several campaigns with the same content but different embargo times, one for each timezone. Then use the Segment plugin to select only those subscribers whose attribute value is for that timezone.
Thanks for your reply duncanc, that is the conclusion I came to as well.
Unfortunately that will require 37 campaigns with the same content and each campaign will have 365 emails in it.
I couldn’t find a way to easily duplicate emails across campaigns either.
What I think I’ll try is to write a script to move subscribers into a private list base on their time zone at the appropriate time for the autoresponder to deal with as per normal.
It’s a but hacky but I don’t see another solution at the moment.
@lilRalph Why are you referring to the autoresponder plugin? The purpose of that is to send a campaign a fixed period after someone subscribes. You seem to be describing something else.
@duncanc I want to send a sequence of emails to a subscriber when they sign up.
The emails will go daily for a year, isn’t that what the autoresponder plugin does?
@lilRalph Yes, that’s what it does. Using that plugin might make this the task of sending at a fixed local time feasible.
The database query that selects subscribers is the method possibleSubscribers() in file Autoresponder/DAO.php
That would need to be enhanced so that a subscriber is selected when the current time is near (within some tolerance) of 09:00 in the subscribers local time. You indicated that there is an attribute which holds the time zone offset so something like this outline might work
09:00 - attribute value - 5 minutes < time(now()) < 09:00 - attribute value + 5 minutes