顧客に注文の領収書を送信するこのスクリプトを作成しましたが、問題があります。
PDFスクリプトを待ちません。
したがって、PDFスクリプトが必要なだけで、PDFスクリプトがまだPDFで機能している間に、実行を開始してメールを送信します。電子メールスクリプトを遅らせる方法があると確信していますが、事態をより複雑にするために:
order.php全体がjqueryajax呼び出しで実行され、スクリプトはphpが終了するのを待ってから、要求が成功したことをブラウザーに報告します。したがって、クライアントがなぜこれほど時間がかかるのか疑問に思う間、5分以上待つことができます。
そのため、PDFが作成されるのを待ってからメールを送信する必要がありますが、クライアントを待たせてはいけません。
これが私のコードです:
<?php
$addid = "orderid.txt";
$current = file_get_contents($addid) + 1;
echo $current;
file_put_contents($addid, $current);
?>
<?php
// Lue tilauksen ID sähköpostia varten
$orderid = "orderid.txt";
$ordernumber = file_get_contents($orderid);
// Kirjoita kuitti
require('receipt.php');
?>
<?php
//Lähetä tilausvahvistus
require_once('mail/class.phpmailer.php');
$path = "kuitit/kuitti".$orderid.".pdf";
$bodytext = '
Olemme vastaanottaneet tilauksenne '. $ordernumber .'.
Tilaamanne tuotteet löytyvät liitteestä.'
;
$email = new PHPMailer();
$email->From = 'no-reply@coverlinefilms.fi';
$email->FromName = 'no-reply@coverlinefilms.fi';
$email->Subject = 'Olemme vastaanottaneet tilauksenne ' . $ordernumber;
$email->Body = $bodytext;
$email->AddAddress('christian.nikkanen@gmail.com');
$email->AddAttachment($path, 'kuitti777.pdf');
return $email->Send();
?>