Istnieją dwa następujące rozwiązania:
Rozwiązanie-01: Używanie crona
System> Konfiguracja> Zaawansowane> System> Cron
Domyślne ustawienia to:
Przede wszystkim Magento 1.9+ polega całkowicie na zadaniach cron do wysyłania e-maili transakcyjnych. Jeśli nie miałeś wcześniej poprawnie skonfigurowanych zadań crona, będziesz musiał to zrobić teraz.
Przede wszystkim upewnij się, że skonfigurowałeś zadania crona w Magento admin pod
System> Konfiguracja> Zaawansowane> System> Cron
Domyślne ustawienia to:
Generuj harmonogramy co 15 harmonogramów z wyprzedzeniem dla 20 pominiętych, jeśli nie zostaną uruchomione w ciągu 15 czyszczenia historii co 10 sukcesów Historia życia 60 Historia awarii życia 600
Są ludzie, którzy sugerują, że te ustawienia powinny zostać zmienione, ale ponieważ wydaje się, że nie mogą się zgodzić na najlepszą kombinację, wolę pozostawić taką, jaka jest.
Następnie musisz przejść do panelu sterowania hostingu i skonfigurować zadania CRON. W cPanel jest pod Zaawansowane> Zadania Cron. Ustaw je tak, aby uruchamiały się co pięć minut i użyj tego polecenia:
php -f /home/username/public_html/cron.php
Sprawdź, czy powyższa ścieżka jest poprawna i czy plik cron.php faktycznie znajduje się w katalogu głównym instalacji Magento (jeśli właśnie zaktualizowałeś, powinien być). Zmień nazwę użytkownika na prawidłowe konto.
Teraz początkowo popełniłem błąd, postępując zgodnie z radami programistów z xtento.com, którzy mówią, aby używać ciągu poleceń wget: wget -O / dev / null -q http://www.YOURDOMAIN.com/PATH_TO_MAGENTO/cron. php
Rozwiązanie-02: Unikaj crona
Transakcyjne wiadomości e-mail będą wysyłane natychmiast.
//app/code/core/Mage/Sales/Model/Order.php Line#1356,1450
//$mailer->setQueue($emailQueue)->send(); Change To
$mailer->send();
app/design/frontend/base/default/template/checkout/success.phtml
//add following line Top success page for sending mail direct
// Start Send Emai Here......
$order = Mage::getModel('sales/order');
$incrementId = Mage::getSingleton('checkout/session')->getLastRealOrderId();
$order->loadByIncrementId($incrementId);
try{ $order->sendNewOrderEmail();}
catch (Exception $ex) { echo "Email Not Sent..."; }
$customer = Mage::getSingleton('customer/session')->getCustomer();
$email = $customer->getEmail();//End Email Sending