簡體   English   中英

15 分鍾訂單完成后發送郵件 Php

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM