[英]Send mail after 15min order completed with Php
我在 M1.9 中创建了一个小模块,用于在订单完成后发送 email。 有一个 cron 每 5 分钟运行一次,它检查间隔 -15 -20 分钟前,如果有订单,它会发送 email。一切正常,但问题是有时它会向同一个 email 发送 2 封邮件。我使用“ foreach" 元素,是否可以在发送第一个 email 后停止它?
public function customcrontask()
{
$time = time();
$ora = date('Y-m-d H:i:s', $time);
$toTime = $time - 889;
$to = date('Y-m-d H:i:s', $toTime);
$lastTime = $time - 1200; // 60*60*7*24
$from = date('Y-m-d H:i:s', $lastTime);
$order_items = Mage::getResourceModel('sales/order_item_collection')
->addAttributeToSelect('order_id')
->addAttributeToSelect('created_at')
->addAttributeToFilter('created_at', array('from' => $from, 'to' => $to))
->load();
foreach ($order_items as $orderkey => $ordervalue) {
$eid = $ordervalue->getOrderId();
// send mail - some variables are not visible here
Mage::getModel('core/email_template')->sendTransactional($template, $sender, $customeremailid, $customername, $vars, $storeId);
试试这个技巧:
$x = 0;
foreach ($order_items as $orderkey => $ordervalue) {
$eid = $ordervalue->getOrderId();
$order = Mage::getModel("sales/order")->load($eid);
$customerorderid = $order->getIncrementId();
$customeremailid = $order->getCustomerEmail();
if($x == 0) {
// send mail - some variables are not visible here
Mage::getModel('core/email_template')->sendTransactional($template, $sender, $customeremailid, $customername, $vars, $storeId);
$x++;
}
这将帮助您在一次计数后退出 foreach 循环。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.