月額定期的な請求書があり、有効期限の6日前にその人に電子メールを送信したいのですが、既に送信されている場合は再送信しません。 PHPでの作業。私は現在、db:paidUntilとsentReminderの両方にDATETIMEの2つのカラムを持っていますが、必要に応じて変更できます。日付範囲 - PHPの範囲を超えていません
ので、擬似コードで:
IF(between 6 days before expiration and expiration date AND reminder NOT sent)
send reminder
set that reminder was already sent
else
if the month has past and time for new reminder, go back to top
来月、全体のプロセスを再起動します。ユーザーは、月の1日、9日、または任意の日付に期限切れになることに注意してください。助けてください!
EDIT:基本的には、メンバーシップの有効期限が切れる6日または5日前に、毎月の通知を誰かに送信します。それで全部です。ここに私のコードのいくつかがありますが、最後のリマインダーを送信した時刻が新しいものを生成するのに十分な時間が経過したかどうかを確認する方法を怠っています。
$paidUntil = strtotime($oneUser->paidUntil);
$paidUntilMonthPrior = strtotime('-1 month', $paidUntil);
$reminderSent = strtotime($oneUser->reminderSent);
//$paidDateRemindRange = strtotime('-6 days', $paidUntil); //6 days till u remind somebody
$noNeedToSend = strtotime('+25 days', $reminderSent);
//$paidDateReset = strtotime('+1 day', $paidUntil);
//if($thisMonth==date('F',$paidUntil)) {
// $sameMonth=true;
//}
//if($todayTime>$paidDateReminder && $todayTime<$paidUntil && $todayTime>$reminderSent)
// $expirationRange=true;
if($todayTime < $noNeedToSend) {
// is within 25 days from last sending - do nothing
}
elseif($todayTime>$noNeedToSend && $todayTime<$paidUntil) {
//is between 25 days and still less than the paid until time AND has not been sent this cycle
// send expiration email and mark that its been sent
$expirationRange=true;
}
何か助けが必要ですか?私には聞こえる音。 – ceejayoz
あなたはこれまでに何を試しましたか?私たちは壊れたコードを修正するのに役立ちますが、あなたのためにこれを最初から書きません。あなたがそれに何らかの努力をしたことを示してください。 –
これらの人は両方とも言った。いくつかのコードを投稿すると、あなたの説明と疑似コードは、私に同じプロセスについて話すようには見えません。 – rgin