Repository navigation
Expand file tree
/
Copy pathadditional_note.php
More file actions
80 lines (71 loc) · 3.09 KB
/
Copy pathadditional_note.php
File metadata and controls
80 lines (71 loc) · 3.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<?php
/**
* @package plg_jshoppingcheckout_additional_note
* @author exstreme <info@protectyoursite.ru>
* @copyright Copyright © ProtectYourSite
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
* @version 1.0.0
*/
defined('_JEXEC') or die;
class plgJshoppingCheckoutAdditional_note extends JPlugin
{
private $add_note_tmp=array(); // Будем хранить комментарии
public function __construct(&$subject, $config = array())
{
parent::__construct($subject, $config);
}
// Добавляем ключ в корзину
public function onBeforeSaveNewProductToCart(&$cart, &$temp_product, &$product){
$temp_product['additional_note'] = '';
}
// Выводим в корзине поле для добавления комментария
function onBeforeDisplayCartView(&$view)
{
$i=0;
foreach($view->products as $k=>$v){
$view->products[$k]['_ext_attribute_html'].= "<div class='additional_note_div'>
<div class='note_label'>Комментарий к товару:</div>
<div class='note_input'>
<input type='textarea' name='additional_note".$i."' value='".$v['additional_note']."' onchange='document.getElementById(\"note_id\").value = \"".$i."\";document.updateCart.submit();' />
</div>
</div>";
$i++;
}
}
// Отображаем при проверке заказа введенные комментарии
function onBeforeDisplayCheckoutCartView(&$view)
{
foreach($view->products as $k=>$v){
$view->products[$k]['_ext_attribute_html'].= "<div class='additional_note_div'>
<div class='note_label'>Комментарий к товару:</div>";
if (isset($v['additional_note']) && $v['additional_note'] !='')
{
$view->products[$k]['_ext_attribute_html'] .= "<div class='note_input'>" . $v['additional_note'] . "</div>";
}
$view->products[$k]['_ext_attribute_html'].= "</div>";
}
}
// Сохраняем введенные комментарии в сессии
function onBeforeRefreshProductInCart(&$quantity, &$cart){
if(JRequest::getVar('note_id',int) != ''){
$id = JRequest::getVar('note_id',int);
if(JRequest::getVar('additional_note'.$id) != '') // Только если изменили поле комментария!
{
$comment = JRequest::getVar('additional_note' . $id);
$cart->products[$id]['additional_note'] = htmlspecialchars($comment);
}
}
}
// После создания заказа помещаем комментарии в массив $add_note_tmp для отправки в шаблоне заказа
function onAfterCreateOrder(&$order, &$cart){
foreach($cart->products as $product){
$this->$add_note_tmp[]=$product['additional_note'];
}
}
// Передаем функции отправки данные комментариев
function onBeforeCreateTemplateOrderMail(&$tmp){
for($i=0; $i < count($this->$add_note_tmp); $i++) {
$tmp->products[$i]->additional_note=$this->$add_note_tmp[$i];
}
}
}