Order.php 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <?php
  2. /*
  3. * FecShop file.
  4. *
  5. * @link http://www.fecshop.com/
  6. * @copyright Copyright (c) 2016 FecShop Software LLC
  7. * @license http://www.fecshop.com/license/
  8. */
  9. namespace fecshop\services\email;
  10. use Yii;
  11. use fecshop\services\Service;
  12. /**
  13. * @author Terry Zhao <2358269014@qq.com>
  14. * @since 1.0
  15. */
  16. class Order extends Service
  17. {
  18. /**
  19. * 邮件模板部分配置.
  20. */
  21. public $emailTheme;
  22. public function init()
  23. {
  24. parent::init();
  25. // init email config
  26. $this->emailTheme['guestCreate']['enable'] = (Yii::$app->store->get('email', 'orderGuestEnable') == Yii::$app->store->enable) ? true : false ;
  27. $this->emailTheme['guestCreate']['widget'] = Yii::$app->store->get('email', 'orderGuestWidget');
  28. $this->emailTheme['guestCreate']['viewPath'] = Yii::$app->store->get('email', 'orderGuestViewPath');
  29. $this->emailTheme['loginedCreate']['enable'] = (Yii::$app->store->get('email', 'orderLoginEnable') == Yii::$app->store->enable) ? true : false ;
  30. $this->emailTheme['loginedCreate']['widget'] = Yii::$app->store->get('email', 'orderLoginWidget');
  31. $this->emailTheme['loginedCreate']['viewPath'] = Yii::$app->store->get('email', 'orderLoginViewPath');
  32. }
  33. /**
  34. * @param $emailInfo | Array ,数组格式格式如下:
  35. * [ 'emcustomer_emailail' => 'xx@xx.com' , [...] ] 其中customer_email是必须有的数组key,对于其他的,
  36. * 可以根据功能添加,添加后,可以在邮件模板的$params中调用,譬如调用customer_email为 $params['customer_email']
  37. * @return boolean , 如果发送成功,则返回true。
  38. * 新订单邮件
  39. */
  40. public function sendCreateEmail($orderInfo)
  41. {
  42. $toEmail = $orderInfo['customer_email'];
  43. if (Yii::$app->user->isGuest) {
  44. $emailThemeInfo = $this->emailTheme['guestCreate'];
  45. } else {
  46. $emailThemeInfo = $this->emailTheme['loginedCreate'];
  47. }
  48. if (isset($emailThemeInfo['enable']) && $emailThemeInfo['enable']) {
  49. $mailerConfigParam = '';
  50. if (isset($emailThemeInfo['mailerConfig']) && $emailThemeInfo['mailerConfig']) {
  51. $mailerConfigParam = $emailThemeInfo['mailerConfig'];
  52. }
  53. if (isset($emailThemeInfo['widget']) && $emailThemeInfo['widget']) {
  54. $widget = $emailThemeInfo['widget'];
  55. }
  56. if (isset($emailThemeInfo['viewPath']) && $emailThemeInfo['viewPath']) {
  57. $viewPath = $emailThemeInfo['viewPath'];
  58. }
  59. if ($widget && $viewPath) {
  60. list($subject, $htmlBody) = Yii::$service->email->getSubjectAndBody($widget, $viewPath, '', $orderInfo);
  61. $sendInfo = [
  62. 'to' => $toEmail,
  63. 'subject' => $subject,
  64. 'htmlBody' => $htmlBody,
  65. 'senderName'=> Yii::$service->store->currentStore,
  66. ];
  67. Yii::$service->email->send($sendInfo, $mailerConfigParam);
  68. return true;
  69. }
  70. }
  71. }
  72. }