Я пишу код для добавления писем с обзорами в очередь на основе таких каналов, как Amazon, Walmart и т. Д. Я делаю это следующим образом. Я хотел бы знать, можно ли оптимизировать код каким-либо другим способом, например, с помощью Switch или чего-то еще, чтобы мне не приходилось использовать несколько статусов if-else.
if ($my_order->pay_method == AMAZONSTORE) {
$emailQueue = new Luxe_EmailQueue();
// $emailQueue->replace_or_add(EMAIL_REVIEW_MAIL1, $customerData->email, $subject, $body, $send_date_php, $my_order->id);
// Temporary adding bcc
$emailQueue->replace_or_add(EMAIL_REVIEW_MAIL1, $customerData->email, $subject, $body, $send_date_php, $my_order->id, null, "", "berkell990@gmail.com");
$emailQueue->save();
unset($emailQueue);
// Add second (reminder) email also, for 7 days after the first email.
$emailQueue = new Luxe_EmailQueue();
// $emailQueue->replace_or_add(EMAIL_REVIEW_MAIL2, $customerData->email, $subject,
// $smarty->fetch('amazon_store_review_email2.tpl'), $email_dispatch_dates['second_review_email_date_php'], $my_order->id);
// Temporary adding bcc
$emailQueue->replace_or_add(EMAIL_REVIEW_MAIL2, $customerData->email, $subject,
$smarty->fetch('amazon_store_review_email2.tpl'), $email_dispatch_dates['second_review_email_date_php'], $my_order->id, null, "", "berkell990@gmail.com");
$emailQueue->save();
unset($emailQueue);
} elseif ($my_order->pay_method == PMM) {
# code...
} elseif ($my_order->pay_method == RP) {
# code...
} elseif ($my_order->pay_method == WALMART) {
# code...
} elseif ($my_order->pay_method == EBAY) {
# code...
} else {
// NO payment Method matched.
}