Files
2024-11-11 18:46:54 +01:00

160 lines
7.1 KiB
PHP

<?php
class Mail extends MailCore
{
public static function send(
$idLang,
$template,
$subject,
$templateVars,
$to,
$toName = null,
$from = null,
$fromName = null,
$fileAttachment = null,
$mode_smtp = null,
$templatePath = _PS_MAIL_DIR_,
$die = false,
$idShop = null,
$bcc = null,
$replyTo = null,
$replyToName = null
) {
$status = true;
if ( $template != 'contact' && is_array($templateVars) && ( (isset( $templateVars['{id_order}'] ) && (int)$templateVars['{id_order}'] > 0 ) || isset( $templateVars['{order_name}' ]) && $templateVars['{order_name}'] != '' ) )
{
if ( !isset( $templateVars['{id_order}'] ) || (int)$templateVars['{id_order}'] == 0 )
{
$orderList = Db::getInstance (_PS_USE_SQL_SLAVE_)->ExecuteS ("SELECT `id_order` FROM `"._DB_PREFIX_."orders` WHERE `reference` = '" . $templateVars[ '{order_name}' ] . "'");
$orderList = $orderList[0];
}
else
$orderList = array('id_order' => $templateVars['{id_order}']);
foreach ($orderList as $order)
{
$order = new Order($order);
if ( $order -> id )
{
$templateVars['{id_order}'] = $order->id;
$customer_message = $order->getFirstMessage();
$templateVars['{message}'] = $customer_message;
$where = 'id_cart ='.(int)$order->id_cart;
$data = array('id_order' => (int)$order->id);
Db::getInstance(_PS_USE_SQL_SLAVE_)->update('custom_field_userdata', $data, $where);
$module = Module::getInstanceByName('customfields');
$custom_fileds = $module->getEmailFields($order->id, ' and a.show_customer = 1');
// adres do faktury w mailu
$custom_fileds_text = '';
foreach ( $custom_fileds['payment'] as $item )
{
if ( $item['id_custom_field'] != 1 )
$custom_fileds_text .= '<b>' . $item['field_name'] . '</b>: ' . $item['field_value'] . '</br>';
}
$templateVars['{customfields}'] = $custom_fileds_text;
require_once 'modules/inpostship/classes/InpostPack.php';
require_once 'modules/inpostship/classes/InpostPoint.php';
$ship = InpostPack::issetCart( (int)$order -> id_cart );
if ( !empty( $ship['receiver_machine'] ) and strpos( $templateVars['{carrier}'], 'Inpost Paczkomaty 24' ) !== false )
{
$point = InpostPoint::getPointInfo( $ship['receiver_machine'] );
$templateVars['{point_code}'] = ' - paczkomat: ' . $point['point_code'];
}
else
$templateVars['{point_code}'] = '';
if ( $idLang == 1 )
{
$content = file_get_contents(_PS_ROOT_DIR_.'/Regulamin_sklepu_internetowego.pdf');
$file_attachment['content'] = $content;
$file_attachment['name'] ='Regulamin_sklepu_internetowego.pdf';
$file_attachment['mime'] = 'application/pdf';
}
if ( $idLang == 2 )
{
$content = file_get_contents(_PS_ROOT_DIR_.'/online-shop-regulations.pdf');
$file_attachment['content'] = $content;
$file_attachment['name'] ='online-shop-regulations.pdf';
$file_attachment['mime'] = 'application/pdf';
}
}
if ( strpos( $templateVars['{carrier}'], 'osobisty' ) !== false and $idLang == 2 )
$templateVars['{carrier}'] = 'Pickup in person';
if ( $subject == 'Potwierdzenie zamówienia' )
{
if ( strpos( $templateVars['{payment}'], 'Płatności elektroniczne' ) !== false and $idLang == 1 )
$templateVars['{payment}'] = 'Przedpłata / Przelew';
}
if ( $subject == 'Oczekiwanie na płatność przelewem' )
{
$user_group = Customer::getDefaultGroupId( $order -> id_customer );
if ( $user_group >= 4 )
{
$subject = 'Realizacja zamówienia';
$templateVars['{payment}'] = 'Możesz spodziewać się faktury do przedpłaty, lub jeśli posiadasz uzgodniony termin płatności natychmiastowej wysyłki.<br><br>Metoda płatności: Przedpłata / Przelew<br><strong>Przedpłata</strong> - zapłacisz po otrzymaniu faktury. Po zaksięgowaniu przelewu zamówienie zostanie wysłane najszybciej jak to możliwe.<br><strong>Przelew</strong> - zapłacisz w uzgodnionym terminie, dotyczy wyłącznie dystrybutorów. Zamówienie zostanie wysłane najszybciej jak to możliwe.';
}
else
$templateVars['{payment}'] = 'Możesz spodziewać się <span class="label" style="font-weight: 700;">dostawy natychmiast po otrzymaniu płatności';
}
if ( $subject == 'Awaiting bank wire payment' )
{
$user_group = Customer::getDefaultGroupId( $order -> id_customer );
if ( $user_group >= 4 )
{
$subject = 'Realization of the order';
$templateVars['{payment}'] = 'You can expect an invoice to be prepaid, or if you have an agreed payment term for immediate shipment.<br><br>Payment method: Prepayment/ Transfer<br><strong>Prepayment</strong> - you will pay after receiving the invoice. After the transfer is credited to the account, the order will be sent as soon as possible.<br><strong>Transfer</strong> - you pay at the agreed time, applies only to distributors. The order will be shipped as soon as possible.';
}
else
$templateVars['{payment}'] = 'You can expect delivery as soon as your payment is received.';
}
/*
TODO: czy Klient B2B
* 19/04/2022
*/
$user_group = Customer::getDefaultGroupId( $order -> id_customer );
$user_group >= 4 ? $templateVars['b2b-client'] = 1 : $templateVars['b2b-client'] = 0;
/* --- */
$test = file_get_contents( 'dump.txt' );
$test .= PHP_EOL . '--------------------------------';
$test .= PHP_EOL . $subject;
$test .= PHP_EOL . $templateVars['{payment}'];
// if ( strpos( $templateVars['{payment}'], 'Płatności elektroniczne' ) !== false and $idLang == 1 )
// {
$test .= PHP_EOL . $order -> id_customer;
$user_group = Customer::getDefaultGroupId( $order -> id_customer );
$test .= PHP_EOL . $user_group;
// if ( $user_group >= 4 )
// $templateVars['{payment}'] = 'Twoje zamówienie na Redline jest gotowe.<br><strong>Przedpłata</strong> - zapłacisz po otrzymaniu faktury<br><strong>Przelew</strong> - zapłacisz w uzgodnionym terminie, dotyczy wyłącznie dystrybutorów.';
// else
// $templateVars['{payment}'] = 'Przedpłata / Przelew';
$test .= PHP_EOL . $templateVars['{payment}'];
// }
$st = parent::Send( $idLang, $template, $subject, $templateVars, $to, $toName, $from, 'REDLINE', $file_attachment, $mode_smtp, $templatePath, $die, $idShop, $bcc, $replyTo, $replyToName );
if ($status && !$st)
$status = false;
}
return $status;
}
else
{
return parent::Send($idLang, $template, $subject, $templateVars, $to, $toName, $from, 'REDLINE', $fileAttachment, $mode_smtp, $templatePath, $die, $idShop, $bcc);
}
return true;
}
}