X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Не отправляется заказ на почту... J1.5+VM1.1.3, Не приходит уведомление...
kocmocivan_mw
kocmocivan_mw
Topic Starter сообщение 6.2.2010, 15:35; Ответить: kocmocivan_mw
Сообщение #1


И СНОВА Я...... :rolleyes:
ZiTosS прошу помоги плизззЗ!
Возникла трабла, нелады садминкой в ВМ не могу просматривать заказы, но естьт выход.
Есть форма оформления заказа, где указываются обязательныйе поля и + необязательное поле E-mail (не у всех покупателей он есть).
Нау так вот если человек вписал в поле E_mail свою почту то на мою почту (zdesplitka@yandex.ru)
приходит его заказ от postmaster@zdesplitka.nichost.ru
А если он не писал свою почту то неприходит ничего.
А хотелось бы независимо от того вписана почта или нет , чтобы мне отправлялось письмо с заказом на почту в яндексе...
Вроде нашел часть кода отвечающего за отправку, но немогу разобраться что тут за эту проблему отвечает.
ПОМОГИ ПЛИЗ!

[php]/ Отправка писем
vmMail($vendor_email['from'], $mosConfig_fromname, $vendor_email['to'], $vendor_email['subject'], $vendor_email['message'], false);

echo "<p>".nl2br($shopper_email['message'])."</p>";
if( $checkout['customer_copy'] == 1 ) {
vmMail($shopper_email['from'], $mosConfig_fromname, $shopper_email['to'], $shopper_email['subject'], $shopper_email['message'], false);
echo "Копия этого сообщения отправлена на адрес ".$shopper_email['to'];
}
else {
echo "Сохраните это сообщение, так как Вам не было отправлено уведомление.";
}

$ps_cart->reset();
unset($checkout);[/php]
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 6.2.2010, 15:52; Ответить: ZiTosS
Сообщение #2


kocmocivan, Побольше кода, тут не видно условий, пи которых происходит отправка тебе.
+ приложи пожалуйста определение функции vmMail() сюда.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
kocmocivan_mw
kocmocivan_mw
Topic Starter сообщение 6.2.2010, 18:54; Ответить: kocmocivan_mw
Сообщение #3


ТЕКСТ всего скрипта
[php]<?php
defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );
/**
*
* @version $Id: checkout_without_register_form.php,v 1.0 2006/10/20 23:31 tug Exp $
* @package VirtueMart
* @subpackage html
* @copyright Copyright (C) 2004-2005 Soeren Eberhardt. All rights reserved.
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
* VirtueMart is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is

*

See /administrator/components/com_virtuemart/COPYRIGHT.php for copyright notices and details.
*
* http://virtuemart.net
*/
mm_showMyFileName( __FILE__ );

$checkout = mosGetParam($_REQUEST, 'checkout', '');

$error = '';
if ( is_array($checkout) && count($checkout) ) {
require_once( CLASSPATH.'ps_main.php' );

if( $checkout['name'] == '' || vmValidateName($checkout['name']) == false ) {
$error .= '<p>Вы не указали имени контактного лица или указали неверно.</p>';
}

preg_replace('/\D/', '', $checkout['phone']);
if ( $checkout['phone'] == '' || strlen($checkout['phone']) < 6 ) {
$error .= '<p>Вы не указали контактного телефона или указали неверно.</p>';
}

if ( $checkout['address'] == '' || strlen($checkout['address']) < 8 ) {
$error .= '<p>Вы не указали свой адрес или указали неверно.</p>';
}

if ( function_exists('vmValidateEmail') ) {
$email_check = vmValidateEmail($checkout['email']);
}
else {
$email_check = mShop_validateEmail($checkout['email']);
}

if ( ($checkout['customer_copy'] == 1 && !$checkout['email']) || ($checkout['customer_copy'] == 1 && $email_check == false) ) {
$error .= '<p>Вы указали, что хотите получить копию заказа на свою электронную почту, но не указали адрес или указали неверно.</p>';
}
}

if ( !is_array($checkout) || !count($checkout) || !empty($error) ) {
?>

<form method="post" action="index.php" id="without_register_form">
<?php if($error) echo '<fieldset><legend>Ошибка</legend>'.$error.'</fieldset>'; ?>
<fieldset>
<legend class="sectiontableheader">Покупка без регистрации.</legend>

<label for="name">Контактное лицо*: <br /></label>
<input id="name" name="checkout[name]" value="<?php if ( $checkout ) echo $checkout['name']; ?>" class="inputbox" /><br />

<label for="phone">Телефон*: <br /></label>
<input id="phone" name="checkout[phone]" value="<?php if ( $checkout ) echo $checkout['phone']; ?>" class="inputbox" /><br />

<label for="phone">Адрес*: <br /></label>
<input id="phone" name="checkout[address]" value="<?php if ( $checkout ) echo $checkout['address']; ?>" class="inputbox" /><br />

<label for="email">E-mail: <br /></label>
<input id="email" name="checkout[email]" value="<?php if ( $checkout ) echo $checkout['email']; ?>" class="inputbox" /><br />

<?php $selected = 'selected="selected"'; ?>
<label for="email">Отправить вам копию? <br /></label>
<select id="email" name="checkout[customer_copy]" class="inputbox" />
<optgroup>

<option value="1" <?php if( $checkout && $checkout['customer_copy'] == 1 ) echo $selected; ?>>Да</option>
<option value="0" <?php if( !$checkout || $checkout['customer_copy'] != 1 ) echo $selected; ?>>Нет</option>
</optgroup>
</select>
<br />

<label for="comment">Комментарий: <br /></label>
<textarea id="comment" name="checkout[comment]" class="inputbox"><?php if ( $checkout ) echo $checkout['comment']; ?></textarea><br />

<div id="submit_wrap">
<input type="submit" value="Отправить" class="button" style="width:auto;text-align:center" />
</div>

<input type="hidden" name="option" value="com_virtuemart" />
<input type="hidden" name="page" value="checkout.without_register_form" />

</fieldset>
</form>

<style>
<!--
#without_register_form {
font-size: 1em; /* размер шрифта формы */
}

#without_register_form fieldset {
/*width: 35em; /* рамка вокруг формы */
border: solid 1px #333; /* нормальная граница рамки */
}

#without_register_form legend {
}

#without_register_form label {
float: left; /* подписи к полям сдвигаются влево */
width: 15em; /* ширина колонки подписей */
line-height: 1em;
margin-right: 0.1em; /* отступ до поля ввода */
text-align: right;
}

#without_register_form input, #without_register_form select, #without_register_form textarea {
margin: 0 0 0.5em 0.2em;
width: 20em; /* ширина полей формы */
padding: 0;
/* делаем одинаковый шрифт для input, select, textarea */
font-family: Verdana, sans-serif;
font-size: 100%;
}

#without_register_form .noresize {
width:auto; /* для кнопок, переключателей */
}

#without_register_form .submit {
/* сдвигаем кнопку отправки */
/*margin-left:;*/
text-align: right;
}

#without_register_form #submit_wrap {
text-align: center;
margin-right:0.2em;
}
-->
</style>

<?php
}
else {
global $cart, $sess, $VM_LANG, $CURRENCY_DISPLAY;

// Проверяем чтобы был хотябы один товар.
if( $cart['idx'] < 1 ) mosRedirect('index.php?option=com_virtuemart');

$ps_vendor_id = $_SESSION["ps_vendor_id"];
require_once(CLASSPATH. 'ps_checkout.php' );
$ps_checkout = new ps_checkout;
require_once(CLASSPATH. 'ps_product.php' );
$ps_product = new ps_product;
require_once(CLASSPATH.'ps_cart.php');
$ps_cart = new ps_cart;

$db = new ps_DB;

//if (AFFILIATE_ENABLE == '1') {
// require_once(CLASSPATH.'ps_affiliate.php');
// $ps_affiliate = new ps_affiliate;
//}

/* Генерим уникальный номер заказа в системе VM */
$order_number = $ps_checkout->get_order_number();

/* Подсчитываем примерную общую стоимость без учёта налогов и доставки */
$order_subtotal = $tmp_subtotal = $ps_checkout->calc_order_subtotal($d);

//$order_taxable = $ps_checkout->calc_order_taxable($d);
//$payment_discount = $d['payment_discount'] = $this->get_payment_discount($d['payment_method_id'], $order_subtotal);

/* DISCOUNT HANDLING */
if( !empty($_SESSION['coupon_discount']) ) {
$coupon_discount = floatval($_SESSION['coupon_discount']);
}
else {
$coupon_discount = 0.00;
}

// from now on we have $order_tax_details
//$d['order_tax'] = $order_tax = round( $this->calc_order_tax($order_taxable, $d), 2 );

// Проверяем чтобы сумма заказа не ушла в минус
if( $tmp_subtotal < 0 ) $order_subtotal = $tmp_subtotal = 0;
//if( $order_taxable < 0 ) $order_taxable = 0;

// from now on we have $order_tax_details
//$d['order_tax'] = $order_tax = round( $ps_checkout->calc_order_tax($order_taxable, $d), 2 );
//if( $this->_SHIPPING ) {
/* sets _shipping */
// $d['order_shipping'] = $order_shipping = round( $this->calc_order_shipping( $d ), 2 );

/* sets _shipping_tax
* btw: This is WEIRD! To get an exactly rounded value we have to convert
* the amount to a String and call "round" with the string. */
// $d['order_shipping_tax'] = $order_shipping_tax = round( strval($this->calc_order_shipping_tax($d)), 2 );

//$shipping_taxrate = $this->_SHIPPING->get_tax_rate();
//@$order_tax_details[$shipping_taxrate] += $order_shipping_tax;
//}
//else {
// $d['order_shipping'] = $order_shipping = $order_shipping_tax = $d['order_shipping_tax'] = 0.00;
//}

$timestamp = time() + ($mosConfig_offset*60*60);

// Вычисление итоговой суммы превращается в вычитании из предположительной суммы скидки по купону
$d['order_total'] = $order_total = $tmp_subtotal
/*+ $order_tax */
/*+ $order_shipping */
/*+ $order_shipping_tax*/
- $coupon_discount
/*- $payment_discount*/;

//$order_tax *= $discount_factor;

//if (!$this->validate_form($d)) {
// return false;
//}

//if (!$this->validate_add($d)) {
// return false;
//}

// Проверяем на отрицательное значение итоговую сумму заказа
if( $order_total < 0 ) $order_total = 0;

// Округляем итоговую сумму заказа до второго знака после запятой
$order_total = round( $order_total, 2);

// Пишем в лог отладочную информацию
$vmLogger->debug( '-- Checkout Debug--
Subtotal: '.$order_subtotal.'
Coupon Discount: '.$coupon_discount.'
------------------------
Order Total: '.$order_total.'
----------------------------'
);

// Check to see if Payment Class File exists
//$payment_class = $ps_payment_method->get_field($d["payment_method_id"], "payment_class");
//$enable_processor = $ps_payment_method->get_field($d["payment_method_id"], "enable_processor");

//if (file_exists(CLASSPATH . "payment/$payment_class.php") ) {
// if( !class_exists( $payment_class ))
// include( CLASSPATH. "payment/$payment_class.php" );

// eval( "\$_PAYMENT = new $payment_class();" );
// if (!$_PAYMENT->process_payment($order_number,$order_total, $d)) {
// $vmLogger->err( $VM_LANG->_PHPSHOP_PAYMENT_ERROR." ($payment_class)" );
// $_SESSION['last_page'] = "checkout.index";
// $_REQUEST["checkout_next_step"] = CHECK_OUT_GET_PAYMENT_METHOD;
// return False;
// }
//}

//else {
// $d["order_payment_log"] = $VM_LANG->_PHPSHOP_CHECKOUT_MSG_LOG;
//}

// Если купон был подарочным, то мы его удаляем
if( @$_SESSION['coupon_type'] == "gift" ) {
$d['coupon_id'] = $_SESSION['coupon_id'];
include_once( CLASSPATH.'ps_coupon.php' );
ps_coupon::remove_coupon_code( $d );
}

// Получаем IP
if (!empty($_SERVER['REMOTE_ADDR'])) {
$ip = $_SERVER['REMOTE_ADDR'];
}
else {
$ip = 'unknown';
}

/* 1.0.9
`order_id` int(11) NOT NULL auto_increment,
`user_id` int(11) NOT NULL default '0',
`vendor_id` int(11) NOT NULL default '0',
`order_number` varchar(32) default NULL,
`user_info_id` varchar(32) default NULL,
`order_total` decimal(10,2) NOT NULL default '0.00',
`order_subtotal` decimal(10,5) default NULL,
`order_tax` decimal(10,2) default NULL,
`order_shipping` decimal(10,2) default NULL,
`order_shipping_tax` decimal(10,2) default NULL,
`coupon_discount` decimal(10,2) NOT NULL default '0.00',
`order_discount` decimal(10,2) NOT NULL default '0.00',
`order_currency` varchar(16) default NULL,
`order_status` char(1) default NULL,
`cdate` int(11) default NULL,
`mdate` int(11) default NULL,
`ship_method_id` varchar(255) default NULL,
`customer_note` text NOT NULL,
`ip_address` varchar(15) NOT NULL default '',
*/
/* Добавляем в базу основную информацию о заказе */
$q = "INSERT INTO #__{vm}_orders ";
$q .= "(user_id, vendor_id, order_number, user_info_id, ship_method_id, order_total, order_subtotal, order_tax, order_shipping, order_shipping_tax, order_discount, coupon_discount, order_currency, order_status, cdate, mdate, customer_note, ip_address) ";
$q .= "VALUES ( 0, ".$ps_vendor_id.", '".$order_number."', '".$d["ship_to_info_id"]."', '', '".$order_total."', '".$order_subtotal."', '".$order_tax."', '".$order_shipping."', '".$order_shipping_tax."', '".$payment_discount."', '".$coupon_discount."', '".$_SESSION['vendor_currency']."', 'P', '".$timestamp."', '".$timestamp."', '".addslashes(htmlspecialchars(strip_tags($checkout['comment'])))."', '".$ip."');";

$db->query($q);
$db->next_record();

/* Берем порядковый номер только что добавленного заказа */
$q = "SELECT order_id FROM #__{vm}_orders WHERE order_number = ";
$q .= "'" . $order_number . "'";

$db->query($q);
$db->next_record();

$d["order_id"] = $order_id = $db->f("order_id");

/**
* Создаём историю заказа.
*/
$mysqlDatetime = date("Y-m-d G:i:s", $timestamp);

$q = "INSERT INTO #__{vm}_order_history ";
$q .= "(order_id,order_status_code,date_added,customer_notified,comments) VALUES (";
$q .= "'$order_id', 'P', '" . $mysqlDatetime . "', 1, '')";
$db->query($q);

/**
* Insert the Order payment info
*/
//$payment_number = ereg_replace(" |-", "", @$_SESSION['ccdata']['order_payment_number']);

//$d["order_payment_code"] = @$_SESSION['ccdata']['credit_card_code'];

// Payment number is encrypted using mySQL ENCODE function.
//$q = "INSERT INTO #__{vm}_order_payment ";
//$q .= "(order_id, order_payment_code, payment_method_id, order_payment_number, ";
//$q .= "order_payment_expire, order_payment_log, order_payment_name, order_payment_trans_id) ";
//$q .= "VALUES ('$order_id', ";
//$q .= "'" . $d["order_payment_code"] . "', ";
//$q .= "'" . $d["payment_method_id"] . "', ";
//$q .= "ENCODE(\"$payment_number\",\"" . ENCODE_KEY . "\"), ";
//$q .= "'" . @$_SESSION["ccdata"]["order_payment_expire"] . "',";
//$q .= "'" . @$d["order_payment_log"] . "',";
//$q .= "'" . @$_SESSION["ccdata"]["order_payment_name"] . "',";
//$q .= "'" . $vmInputFilter->safeSQL( @$d["order_payment_trans_id"] ). "'";
//$q .= ")";
//$db->query($q);
//$db->next_record();

/**
* Вставляем информацию о адресах пользователя и покупателя. Т.к. у нас их нет, то пишем что-нить
* Вообще это очень важная хуйня, т.к. без неё заказы не отображаются в админке
*/
// Bill To Address
$q = "INSERT INTO `#__{vm}_order_user_info` (order_info_id, order_id, user_id, address_type, address_type_name, company, title, last_name, first_name, middle_name, phone_1, phone_2, fax, address_1, address_2, city, state, country, zip, user_email, extra_field_1, extra_field_2, extra_field_3, extra_field_4, extra_field_5, bank_account_nr, bank_name, bank_sort_code, bank_iban, bank_account_holder, bank_account_type) ";
$q .= "VALUES ('', '".$order_id."', 0, 'BT', '-default-', '', '', '', '".$checkout['name']."', '', '".$checkout['phone']."', '', '', '".$checkout['address']."', '', '', '', '', '', '".$checkout['email']."', '', '', '', '', '', '', '', '', '', '', '') ";
$db->query( $q );

// Ship to Address if applicable
//$q = "INSERT INTO `#__{vm}_order_user_info` ";
//$q .= "SELECT '', '$order_id', '".$auth['user_id']."', address_type, address_type_name, company, title, last_name, first_name, middle_name, phone_1, phone_2, fax, address_1, address_2, city, state, country, zip, user_email, extra_field_1, extra_field_2, extra_field_3, extra_field_4, extra_field_5,bank_account_nr,bank_name,bank_sort_code,bank_iban,bank_account_ho
lder,bank_account_type FROM #__{vm}_user_info WHERE user_id='".$auth['user_id']."' AND user_info_id='".$d['ship_to_info_id']."' AND address_type='ST'";
//$db->query( $q );

/**
* Insert all Products from the Cart into order line items;
* one row per product in the cart
*/
$dboi = new ps_DB;

// Берем данные о продавце
$q = "SELECT * FROM #__{vm}_vendor WHERE vendor_id = '".$_SESSION['ps_vendor_id']."'";
$db->query($q);
$db->next_record();
$vendor_email['subject'] = $db->f("vendor_name").'. Новый заказ от незарегестрированного пользователя '.$checkout['name'].' ['.$order_id.']';
$shopper_email['subject'] = 'Ваш заказ на сайте «'.$mosConfig_live_site.'» ['.$order_id.']';
$vendor_email['to'] = $shopper_email['from'] = $db->f("contact_email");
if( $checkout['email'] ){
$shopper_email['to'] = $vendor_email['from'] = $checkout['email'];
}
else {
$vendor_email['from'] ='впишите мыло магазина';
}

// Берем данные о покупателе
$vendor_email['message'] .= "Номер заказа: ".$order_id."\n";
$vendor_email['message'] .= "Данные о покупателе\n";
$vendor_email['message'] .= "--------------------------------------------------\n";
$vendor_email['message'] .= "Имя: ".$checkout['name']."\n";
$vendor_email['message'] .= "Телефон: ".$checkout['phone']."\n";
$vendor_email['message'] .= "Адрес: ".$checkout['address']."\n";
if( $checkout['email'] ) $vendor_email['message'] .= "Электронная почта: ".$checkout['email']."\n";
if( $checkout['comment'] ) $vendor_email['message'] .= "Комментарий к заказу: ".$checkout['comment']."\n";
$vendor_email['message'] .= "--------------------------------------------------\n\n";

$shopper_email['message'] = "Уважаемый покупатель, пожалуйста проверьте информацию ниже и в случае ошибки свяжитесь с продавцом, указав уникальный номер заказа - [".$order_id."]\n\n";
$shopper_email['message'] .= "Данные о продавце\n";
$shopper_email['message'] .= "--------------------------------------------------\n";
if($db->f("contact_phone1")) $shopper_email['message'] .= "Телефон 1: ".$db->f("contact_phone1")."\n";
if($db->f("contact_phone2")) $shopper_email['message'] .= "Телефон 2: ".$db->f("contact_phone2")."\n";
if($db->f("contact_fax")) $shopper_email['message'] .= "Факс: ".$db->f("contact_fax")."\n";
$shopper_email['message'] .= "Электронная почта: ".$db->f("contact_email")."\n";
$shopper_email['message'] .= "Сайт: ".$db->f("vendor_url")."\n";
$shopper_email['message'] .= "--------------------------------------------------\n\n";

$message = "Данные о товарах\n";
$message .= "--------------------------------------------------";
for($i = 0; $i < $cart["idx"]; $i++) {

$r = "SELECT product_id,product_in_stock,product_sales,product_parent_id,product_sku,product_
name ";
$r .= "FROM #__{vm}_product WHERE product_id='".$cart[$i]["product_id"]."'";
$dboi->query($r);
$dboi->next_record();

$product_price_arr = $ps_product->get_adjusted_attribute_price($cart[$i]["product_id"], $cart[$i]["description"]);
$product_price = $product_price_arr["product_price"];

//if( empty( $_SESSION['product_sess'][$cart[$i]["product_id"]]['tax_rate'] )) {
// $my_taxrate = $ps_product->get_product_taxrate($cart[$i]["product_id"] );
//}
//else {
// $my_taxrate = $_SESSION['product_sess'][$cart[$i]["product_id"]]['tax_rate'];
//}
// Attribute handling
$product_parent_id = $dboi->f('product_parent_id');
$description = '';
if( $product_parent_id > 0 ) {

$db_atts = $ps_product->attribute_sql( $dboi->f('product_id'), $product_parent_id );
while( $db_atts->next_record()) {
$description .= $db_atts->f('attribute_name').': '.$db_atts->f('attribute_value').'; ';
}
}

$description .= $_SESSION['cart'][$i]["description"];

$product_final_price = round( ($product_price *($my_taxrate+1)), 2 );

$vendor_id = $db->f("vendor_id");

$product_currency = $product_price_arr["product_currency"];

$q = "INSERT INTO #__{vm}_order_item ";
$q .= "(order_id, user_info_id, vendor_id, product_id, order_item_sku, order_item_name, ";
$q .= "product_quantity, product_item_price, product_final_price, ";
$q .= "order_item_currency, order_status, product_attribute, cdate, mdate) ";
$q .= "VALUES ('";
$q .= $order_id . "', '";
$q .= $d["ship_to_info_id"] . "', '";
$q .= $vendor_id . "', '";
$q .= $cart[$i]["product_id"] . "', '";
$q .= addslashes($dboi->f("product_sku")) . "', '";
$q .= addslashes($dboi->f("product_name")) . "', '";
$q .= $cart[$i]["quantity"] . "', '";
$q .= $product_price . "', '";
$q .= $product_final_price . "', '";
$q .= $product_currency . "', ";
$q .= "'P','";
// added for advanced attribute storage
$q .= addslashes( $description ) . "', '";
// END advanced attribute modifications
$q .= $timestamp . "','";
$q .= $timestamp . "'";
$q .= ")";

$db->query($q);
$db->next_record();

// Берем данные о товарах
$message .= "\n";
$message .= $VM_LANG->_PHPSHOP_PRODUCT.": ";
if ($db->f("product_parent_id")) {
$message .= $dboi->f("order_item_name")."\n";
$message .= "SERVICE = ";
}
$message .= $dboi->f("product_name")."; ".$description."\n";
$message .= $VM_LANG->_PHPSHOP_ORDER_PRINT_QUANTITY.": ";
$message .= $cart[$i]['quantity']."\n";
$message .= $VM_LANG->_PHPSHOP_ORDER_PRINT_SKU.": ";
$message .= $dboi->f("product_sku")."\n";

$message .= $VM_LANG->_PHPSHOP_ORDER_PRINT_PRICE.": ";
$message .= $product_final_price;
$message .= "\n";

/* Update Stock Level and Product Sales */
if ($dboi->f("product_in_stock")) {
$q = "UPDATE #__{vm}_product ";
$q .= "SET product_in_stock = product_in_stock - ".$cart[$i]["quantity"];
$q .= " WHERE product_id = '" . $cart[$i]["product_id"]. "'";
$db->query($q);
$db->next_record();
}

$q = "UPDATE #__{vm}_product ";
$q .= "SET product_sales = product_sales + ".$cart[$i]["quantity"];
$q .= " WHERE product_id = '".$cart[$i]["product_id"]."'";
$db->query($q);
$db->next_record();

}

// DOWNLOAD MOD SKIPPED BECAUSE IT IS NOT REAL TO TRADE FILES WITHOUT PAYMENT

//if (AFFILIATE_ENABLE == '1') {
// $ps_affiliate->register_sale($order_id);
//}
// Export the order_id so the checkout complete page can get it
$d["order_id"] = $order_id;

// Now as everything else has been done, we can update
// the Order Status if the Payment Method is
// "Use Payment Processor", because:
// Payment Processors return false on any error
// Only completed payments return true!
//if( $enable_processor == "Y" ) {
// eval( "if( defined(\"".$_PAYMENT->payment_code."_VERIFIED_STATUS\")) {
// \$d['order_status'] = ".$_PAYMENT->payment_code."_VERIFIED_STATUS;
// \$update_order = true;
// }
// else
// \$update_order = false;" );
// if ( $update_order ) {
// require_once(CLASSPATH."ps_order.php");
// $ps_order =& new ps_order();
// $ps_order->order_status_update($d);
// }
//}

$message .= "--------------------------------------------------\n";
$message .= "Итого: ".$CURRENCY_DISPLAY->getFullValue($order_total)."\n";
$message .= "--------------------------------------------------\n";

$vendor_email['message'] .= $message;
$shopper_email['message'] .= $message;

// Отправка писем
vmMail($vendor_email['from'], $mosConfig_fromname, $vendor_email['to'], $vendor_email['subject'], $vendor_email['message'], false);

echo "<p>".nl2br($shopper_email['message'])."</p>";
if( $checkout['customer_copy'] == 1 ) {
vmMail($shopper_email['from'], $mosConfig_fromname, $shopper_email['to'], $shopper_email['subject'], $shopper_email['message'], false);
echo "Копия этого сообщения отправлена на адрес ".$shopper_email['to'];
}
else {
echo "Сохраните это сообщение, так как Вам не было отправлено уведомление.";
}

$ps_cart->reset();
unset($checkout);

// Подчищаем всякую хуйню
$d["payment_method_id"] = "";
$d["order_payment_number"] = "";
$d["order_payment_expire"] = "";
$d["order_payment_name"] = "";
$d["credit_card_code"] = "";
// Clear the sensitive Session data
$_SESSION['ccdata']['order_payment_name'] = "";
$_SESSION['ccdata']['order_payment_number'] = "";
$_SESSION['ccdata']['order_payment_expire_month'] = "";
$_SESSION['ccdata']['order_payment_expire_year'] = "";
$_SESSION['ccdata']['credit_card_code'] = "";
$_SESSION['coupon_discount'] = "";
$_SESSION['coupon_id'] = "";
$_SESSION['coupon_redeemed'] = false;

$_POST["payment_method_id"] = "";
$_POST["order_payment_number"] = "";
$_POST["order_payment_expire"] = "";
$_POST["order_payment_name"] = "";
}

?>[/php]
Причина редактирования: by Zitoss: Убрал лишний код - не надо так много.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 6.2.2010, 22:18; Ответить: ZiTosS
Сообщение #4


kocmocivan, ты мне не предоставил реализацию функции vmMail
Ищи в файлах по: function vmMail и вставляй сюда это определение.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 6.2.2010, 23:46; Ответить: ZiTosS
Сообщение #5


kocmocivan, попробуй строку:
        $vendor_email['from'] ='впишите мыло магазина';

заменить на:
        $vendor_email['from'] ='postmaster@zdesplitka.nichost.ru';

Если посмотреть на определение функции vmMail():
[php]function vmMail($from, $fromname, $recipient, $subject, $body, $Altbody='', $mode=false, $cc=NULL, $bcc=NULL, $images=null, $attachment=null ) {
global $mosConfig_debug;

// Filter from, fromname and subject
if (!vmValidateEmail( $from ) || !vmValidateName( $fromname ) || !vmValidateName( $subject )) {
return false;
}

$mail = vmCreateMail( $from, $fromname, $subject, $body );

if( $Altbody != "" ) {
// In this section we take care for utf-8 encoded mails
$mail->AltBody = vmAbstractLanguage::safe_utf8_encode( $Altbody, $mail->CharSet );
}

// activate HTML formatted emails
if ( $mode ) {
$mail->IsHTML(true);
}
if( $mail->ContentType == "text/plain" ) {
$mail->Body = vmAbstractLanguage::safe_utf8_encode( $mail->Body, $mail->CharSet );
}
if( is_array($recipient) ) {
foreach ($recipient as $to) {
if( vmValidateEmail( $to )) {
$mail->AddAddress($to);
}
}
} else {
if( vmValidateEmail( $recipient )) {
$mail->AddAddress($recipient);
}
}
if (isset($cc)) {
if( is_array($cc) )
foreach ($cc as $to) {
if( vmValidateEmail( $to )) {
$mail->AddCC($to);
}
}
else {
if( vmValidateEmail( $cc )) {
$mail->AddCC($cc);
}
}
}
if (isset($bcc)) {
if( is_array($bcc) )
foreach ($bcc as $to) {
if( vmValidateEmail( $to )) {
$mail->AddBCC($to);
}
}
else {
if( vmValidateEmail( $bcc )) {
$mail->AddBCC($bcc);
}
}
}
if( $images ) {
foreach( $images as $image) {
$mail->AddEmbeddedImage( $image['path'], $image['name'], $image['filename'], $image['encoding'], $image['mimetype']);
}
}
if ($attachment) {
if ( is_array($attachment) )
foreach ($attachment as $fname) $mail->AddAttachment($fname);
else
$mail->AddAttachment($attachment);
}
$mailssend = $mail->Send();

if( $mosConfig_debug ) {
//$mosDebug->message( "Mails send: $mailssend");
}
if( $mail->error_count > 0 ) {
//$mosDebug->message( "The mail message $fromname <$from> about $subject to $recipient <b>failed</b><br /><pre>$body</pre>", false );
//$mosDebug->message( "Mailer Error: " . $mail->ErrorInfo . "" );
}
return $mailssend;
}[/php]

Первые строки занимаются проверкой переданных данных в функцию(проверка на валидность): email отправителя, имя отправителя, заголовок сообщения.
У нас же "email отправителя" = "впишите мыло магазина";
[php] if (!vmValidateEmail( $from ) || !vmValidateName( $fromname ) || !vmValidateName( $subject )) {
return false;
}[/php]
Как видим, если проверяемые данные не валидны, функция тут же завершается без отправки письма.

Поэтому и не отправляется письмо, так как при отправке в функцию vmMail() передаётся некорректный адрес:
[php] /* $checkout['email'] - переменная введённого пользователем email */
// если email БЫЛ введён пользователем
if( $checkout['email'] ){
$shopper_email['to'] = $vendor_email['from'] = $checkout['email']; // "письмо для покупателя email (кому)" = "письмо для продавца email (от кого)" = "email введенный пользователем"
}
// если email НЕ БЫЛ введён пользователем
else {
$vendor_email['from'] ='впишите мыло магазина'; // тут вместо "письмо для продавца email (от кого)" вставляем строку "впишите мыло магазина"
}[/php]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
kocmocivan_mw
kocmocivan_mw
Topic Starter сообщение 7.2.2010, 1:24; Ответить: kocmocivan_mw
Сообщение #6


СПАСИБО! ЗАРАБОТАЛО!
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 7.2.2010, 13:27; Ответить: ZiTosS
Сообщение #7


kocmocivan, всегда рад помочь! Тему закрываю ;)

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Скрипты и программы на заказ любой сложности. Без предоплаты. Быстро, качественно и недорого!
5 c4p1t4l15t 2520 6.4.2024, 12:51
автор: c4p1t4l15t
Открытая тема (нет новых ответов) Мегамаркет. Скидка 1000 рублей при покупке от 5000 рублей на все, на первый заказ.
Мегамаркет. Скидка 1000 рублей при покупке от 5000 рублей на все, на п
7 stu999 1753 31.3.2024, 11:19
автор: stu999
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыEdu-Money - партнерка под студентческий траф: 55% за новый заказ, 20% ребилл (сразу).
180 EduMoney 73507 28.12.2023, 17:51
автор: EduMoney
Открытая тема (нет новых ответов) Кодер. Софт на заказ 1000рублей в час
0 albarm01 1006 6.10.2022, 18:00
автор: albarm01
Открытая тема (нет новых ответов) XXX клипы на заказ
Делаю клипы "горячей" тематики на заказ
0 Frantixxx 999 27.7.2022, 2:36
автор: Frantixxx


 



RSS Текстовая версия Сейчас: 20.4.2024, 15:59
Дизайн