Skip to content

Commit 403a101

Browse files
author
zanardi
committed
Refs #10620 - add notification to customer
1 parent 600173b commit 403a101

File tree

6 files changed

+127
-86
lines changed

6 files changed

+127
-86
lines changed

build/build.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
project.name = pizzabox
22
component.name = com_pizzabox
33
path.deploy.local = /var/www/joomla30
4-
current.version = v3.3.1
4+
current.version = v3.3.2_BETA

component/backend/config.xml

+65-61
Original file line numberDiff line numberDiff line change
@@ -1,64 +1,68 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<config>
3-
<fieldset name="component" label="PIZZABOX_CONFIG_FIELDSET_COMPONENT_TITLE">
4-
<field name="order_name_mandatory" type="radio" default="0" label="PIZZABOX_CONFIG_FIELD_ORDER_NAME_MANDATORY" description="PIZZABOX_CONFIG_FIELD_ORDER_NAME_MANDATORY_DESC">
5-
<option value="0">JNo</option>
6-
<option value="1">JYes</option>
7-
</field>
8-
<field name="email_notification" type="radio" default="0" label="PIZZABOX_CONFIG_FIELD_EMAIL_NOTIFICATION_LABEL" description="PIZZABOX_CONFIG_FIELD_EMAIL_NOTIFICATION_DESC">
9-
<option value="0">JNo</option>
10-
<option value="1">JYes</option>
11-
</field>
12-
<field name="email_address" type="text" default="" label="PIZZABOX_CONFIG_FIELD_EMAIL_ADDRESS_LABEL" description="PIZZABOX_CONFIG_FIELD_EMAIL_ADDRESS_DESC" />
13-
</fieldset>
14-
<fieldset name="delivery" label="PIZZABOX_CONFIG_FIELDSET_DELIVERY_TITLE">
15-
<field name="time_enabled" type="radio" default="1" label="PIZZABOX_CONFIG_FIELD_TIME_ENABLED_LABEL" description="PIZZABOX_CONFIG_FIELD_TIME_ENABLED_DESC">
16-
<option value="0">JNo</option>
17-
<option value="1">JYes</option>
18-
</field>
19-
<field name="delay_mode" type="radio" default="S" label="PIZZABOX_CONFIG_FIELD_DELAY_MODE_LABEL" description="PIZZABOX_CONFIG_FIELD_DELAY_MODE_DESC">
20-
<option value="S">PIZZABOX_CONFIG_FIELD_DELAY_MODE_OPTION_SESSION</option>
21-
<option value="D">PIZZABOX_CONFIG_FIELD_DELAY_MODE_OPTION_DELAY</option>
22-
</field>
23-
<field name="min_delivery_delay" type="text" default="1" label="PIZZABOX_CONFIG_FIELD_MIN_DELIVERY_DELAY_LABEL" description="PIZZABOX_CONFIG_FIELD_MIN_DELIVERY_DELAY_DESC" />
24-
<field name="delivery_start" type="text" default="09:00" label="PIZZABOX_CONFIG_FIELD_DELIVERY_START_LABEL" description="PIZZABOX_CONFIG_FIELD_DELIVERY_START_DESC" />
25-
<field name="delivery_end" type="text" default="18:00" label="PIZZABOX_CONFIG_FIELD_DELIVERY_END_LABEL" description="PIZZABOX_CONFIG_FIELD_DELIVERY_END_DESC" />
26-
<field name="second_delivery_start" type="text" default="" label="PIZZABOX_CONFIG_FIELD_SECOND_DELIVERY_START_LABEL" description="PIZZABOX_CONFIG_FIELD_SECOND_DELIVERY_START_DESC" />
27-
<field name="second_delivery_end" type="text" default="" label="PIZZABOX_CONFIG_FIELD_SECOND_DELIVERY_END_LABEL" description="PIZZABOX_CONFIG_FIELD_SECOND_DELIVERY_END_LABEL" />
28-
<field name="delivery_times_interval" type="text" default="15" label="PIZZABOX_CONFIG_FIELD_DELIVERY_TIMES_INTERVAL_LABEL" description="PIZZABOX_CONFIG_FIELD_DELIVERY_TIMES_INTERVAL_DESC" />
29-
<field name="max_orders_per_interval" type="text" default="1" label="PIZZABOX_CONFIG_FIELD_MAX_ORDERS_PER_INTERVAL_LABEL" description="PIZZABOX_CONFIG_FIELD_MAX_ORDERS_PER_INTERVAL_DESC" />
30-
<field name="next_days_number" type="text" default="7" label="PIZZABOX_CONFIG_FIELD_NEXT_DAYS_NUMBER_LABEL" description="PIZZABOX_CONFIG_FIELD_NEXT_DAYS_NUMBER_DESC" />
31-
<field name="show_address" type="radio" default="1" label="PIZZABOX_CONFIG_FIELD_SHOW_ADDRESS_LABEL" description="PIZZABOX_CONFIG_FIELD_SHOW_ADDRESS_DESC">
32-
<option value="0">JNo</option>
33-
<option value="1">JYes</option>
34-
</field>
35-
</fieldset>
36-
<fieldset name="currency" label="PIZZABOX_CONFIG_FIELDSET_CURRENCY_TITLE">
37-
<field type="text" name="currency" default="EUR" label="PIZZABOX_CONFIG_FIELD_CURRENCY_CODE_LABEL" description="PIZZABOX_CONFIG_FIELD_CURRENCY_CODE_DESC" />
38-
<field type="text" name="currency_symbol" default="" label="PIZZABOX_CONFIG_FIELD_CURRENCY_SYMBOL_LABEL" description="PIZZABOX_CONFIG_FIELD_CURRENCY_SYMBOL_DESC" />
39-
<field name="currency_symbol_position" type="list" default="before" label="PIZZABOX_CONFIG_FIELD_CURRENCY_POS_LABEL" description="PIZZABOX_CONFIG_FIELD_CURRENCY_POS_DESC">
40-
<option value="before">PIZZABOX_CONFIG_FIELD_CURRENCY_POS_OPTION_BEFORE</option>
41-
<option value="after">PIZZABOX_CONFIG_FIELD_CURRENCY_POS_OPTION_AFTER</option>
42-
</field>
43-
</fieldset>
44-
<fieldset name="paypal" label="PIZZABOX_CONFIG_FIELDSET_PAYPAL_TITLE">
45-
<field name="paypal_enabled" type="radio" default="0" label="PIZZABOX_CONFIG_FIELD_PAYPAL_ENABLED_LABEL" description="PIZZABOX_CONFIG_FIELD_PAYPAL_ENABLED_DESC">
46-
<option value="0">JNo</option>
47-
<option value="1">JYes</option>
48-
</field>
49-
<field name="paypal_business" type="text" default="[email protected]" label="PIZZABOX_CONFIG_FIELD_PAYPAL_BUSINESS_LABEL" description="PIZZABOX_CONFIG_FIELD_PAYPAL_BUSINESS_DESC" />
50-
<field name="paypal_item_name_prefix" type="text" default="PizzaBox Order Number " label="PIZZABOX_CONFIG_FIELD_PAYPAL_ITEM_NAME_PREFIX_LABEL" description="PIZZABOX_CONFIG_FIELD_PAYPAL_ITEM_NAME_PREFIX_DESC" />
51-
</fieldset>
52-
<fieldset name="display" label="PIZZABOX_CONFIG_FIELDSET_DISPLAY_TITLE">
53-
<field name="include_basic_css" type="radio" default="1" label="PIZZABOX_CONFIG_FIELD_INCLUDE_BASIC_CSS_LABEL" description="PIZZABOX_CONFIG_FIELD_INCLUDE_BASIC_CSS_DESC">
54-
<option value="0">JNo</option>
55-
<option value="1">JYes</option>
56-
</field>
57-
</fieldset>
58-
<fieldset name="access" label="PIZZABOX_CONFIG_FIELDSET_ACCESS_TITLE">
59-
<field name="registered_users_only" type="radio" default="1" label="PIZZABOX_CONFIG_FIELD_REGISTERED_USERS_ONLY_LABEL" description="PIZZABOX_CONFIG_FIELD_REGISTERED_USERS_ONLY_DESC">
60-
<option value="0">JNo</option>
61-
<option value="1">JYes</option>
62-
</field>
63-
</fieldset>
3+
<fieldset name="component" label="PIZZABOX_CONFIG_FIELDSET_COMPONENT_TITLE">
4+
<field name="order_name_mandatory" type="radio" default="0" label="PIZZABOX_CONFIG_FIELD_ORDER_NAME_MANDATORY" description="PIZZABOX_CONFIG_FIELD_ORDER_NAME_MANDATORY_DESC">
5+
<option value="0">JNo</option>
6+
<option value="1">JYes</option>
7+
</field>
8+
<field name="email_notification" type="radio" default="0" label="PIZZABOX_CONFIG_FIELD_EMAIL_NOTIFICATION_LABEL" description="PIZZABOX_CONFIG_FIELD_EMAIL_NOTIFICATION_DESC">
9+
<option value="0">JNo</option>
10+
<option value="1">JYes</option>
11+
</field>
12+
<field name="email_address" type="text" default="" label="PIZZABOX_CONFIG_FIELD_EMAIL_ADDRESS_LABEL" description="PIZZABOX_CONFIG_FIELD_EMAIL_ADDRESS_DESC" />
13+
<field name="user:email_notification" type="radio" default="0" label="PIZZABOX_CONFIG_FIELD_USER_EMAIL_NOTIFICATION_LABEL" description="PIZZABOX_CONFIG_FIELD_USER_EMAIL_NOTIFICATION_DESC">
14+
<option value="0">JNo</option>
15+
<option value="1">JYes</option>
16+
</field>
17+
</fieldset>
18+
<fieldset name="delivery" label="PIZZABOX_CONFIG_FIELDSET_DELIVERY_TITLE">
19+
<field name="time_enabled" type="radio" default="1" label="PIZZABOX_CONFIG_FIELD_TIME_ENABLED_LABEL" description="PIZZABOX_CONFIG_FIELD_TIME_ENABLED_DESC">
20+
<option value="0">JNo</option>
21+
<option value="1">JYes</option>
22+
</field>
23+
<field name="delay_mode" type="radio" default="S" label="PIZZABOX_CONFIG_FIELD_DELAY_MODE_LABEL" description="PIZZABOX_CONFIG_FIELD_DELAY_MODE_DESC">
24+
<option value="S">PIZZABOX_CONFIG_FIELD_DELAY_MODE_OPTION_SESSION</option>
25+
<option value="D">PIZZABOX_CONFIG_FIELD_DELAY_MODE_OPTION_DELAY</option>
26+
</field>
27+
<field name="min_delivery_delay" type="text" default="1" label="PIZZABOX_CONFIG_FIELD_MIN_DELIVERY_DELAY_LABEL" description="PIZZABOX_CONFIG_FIELD_MIN_DELIVERY_DELAY_DESC" />
28+
<field name="delivery_start" type="text" default="09:00" label="PIZZABOX_CONFIG_FIELD_DELIVERY_START_LABEL" description="PIZZABOX_CONFIG_FIELD_DELIVERY_START_DESC" />
29+
<field name="delivery_end" type="text" default="18:00" label="PIZZABOX_CONFIG_FIELD_DELIVERY_END_LABEL" description="PIZZABOX_CONFIG_FIELD_DELIVERY_END_DESC" />
30+
<field name="second_delivery_start" type="text" default="" label="PIZZABOX_CONFIG_FIELD_SECOND_DELIVERY_START_LABEL" description="PIZZABOX_CONFIG_FIELD_SECOND_DELIVERY_START_DESC" />
31+
<field name="second_delivery_end" type="text" default="" label="PIZZABOX_CONFIG_FIELD_SECOND_DELIVERY_END_LABEL" description="PIZZABOX_CONFIG_FIELD_SECOND_DELIVERY_END_LABEL" />
32+
<field name="delivery_times_interval" type="text" default="15" label="PIZZABOX_CONFIG_FIELD_DELIVERY_TIMES_INTERVAL_LABEL" description="PIZZABOX_CONFIG_FIELD_DELIVERY_TIMES_INTERVAL_DESC" />
33+
<field name="max_orders_per_interval" type="text" default="1" label="PIZZABOX_CONFIG_FIELD_MAX_ORDERS_PER_INTERVAL_LABEL" description="PIZZABOX_CONFIG_FIELD_MAX_ORDERS_PER_INTERVAL_DESC" />
34+
<field name="next_days_number" type="text" default="7" label="PIZZABOX_CONFIG_FIELD_NEXT_DAYS_NUMBER_LABEL" description="PIZZABOX_CONFIG_FIELD_NEXT_DAYS_NUMBER_DESC" />
35+
<field name="show_address" type="radio" default="1" label="PIZZABOX_CONFIG_FIELD_SHOW_ADDRESS_LABEL" description="PIZZABOX_CONFIG_FIELD_SHOW_ADDRESS_DESC">
36+
<option value="0">JNo</option>
37+
<option value="1">JYes</option>
38+
</field>
39+
</fieldset>
40+
<fieldset name="currency" label="PIZZABOX_CONFIG_FIELDSET_CURRENCY_TITLE">
41+
<field type="text" name="currency" default="EUR" label="PIZZABOX_CONFIG_FIELD_CURRENCY_CODE_LABEL" description="PIZZABOX_CONFIG_FIELD_CURRENCY_CODE_DESC" />
42+
<field type="text" name="currency_symbol" default="" label="PIZZABOX_CONFIG_FIELD_CURRENCY_SYMBOL_LABEL" description="PIZZABOX_CONFIG_FIELD_CURRENCY_SYMBOL_DESC" />
43+
<field name="currency_symbol_position" type="list" default="before" label="PIZZABOX_CONFIG_FIELD_CURRENCY_POS_LABEL" description="PIZZABOX_CONFIG_FIELD_CURRENCY_POS_DESC">
44+
<option value="before">PIZZABOX_CONFIG_FIELD_CURRENCY_POS_OPTION_BEFORE</option>
45+
<option value="after">PIZZABOX_CONFIG_FIELD_CURRENCY_POS_OPTION_AFTER</option>
46+
</field>
47+
</fieldset>
48+
<fieldset name="paypal" label="PIZZABOX_CONFIG_FIELDSET_PAYPAL_TITLE">
49+
<field name="paypal_enabled" type="radio" default="0" label="PIZZABOX_CONFIG_FIELD_PAYPAL_ENABLED_LABEL" description="PIZZABOX_CONFIG_FIELD_PAYPAL_ENABLED_DESC">
50+
<option value="0">JNo</option>
51+
<option value="1">JYes</option>
52+
</field>
53+
<field name="paypal_business" type="text" default="[email protected]" label="PIZZABOX_CONFIG_FIELD_PAYPAL_BUSINESS_LABEL" description="PIZZABOX_CONFIG_FIELD_PAYPAL_BUSINESS_DESC" />
54+
<field name="paypal_item_name_prefix" type="text" default="PizzaBox Order Number " label="PIZZABOX_CONFIG_FIELD_PAYPAL_ITEM_NAME_PREFIX_LABEL" description="PIZZABOX_CONFIG_FIELD_PAYPAL_ITEM_NAME_PREFIX_DESC" />
55+
</fieldset>
56+
<fieldset name="display" label="PIZZABOX_CONFIG_FIELDSET_DISPLAY_TITLE">
57+
<field name="include_basic_css" type="radio" default="1" label="PIZZABOX_CONFIG_FIELD_INCLUDE_BASIC_CSS_LABEL" description="PIZZABOX_CONFIG_FIELD_INCLUDE_BASIC_CSS_DESC">
58+
<option value="0">JNo</option>
59+
<option value="1">JYes</option>
60+
</field>
61+
</fieldset>
62+
<fieldset name="access" label="PIZZABOX_CONFIG_FIELDSET_ACCESS_TITLE">
63+
<field name="registered_users_only" type="radio" default="1" label="PIZZABOX_CONFIG_FIELD_REGISTERED_USERS_ONLY_LABEL" description="PIZZABOX_CONFIG_FIELD_REGISTERED_USERS_ONLY_DESC">
64+
<option value="0">JNo</option>
65+
<option value="1">JYes</option>
66+
</field>
67+
</fieldset>
6468
</config>

component/backend/language/en-GB/en-GB.com_pizzabox.ini

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
; @version backend/en-GB.com_pizzabox.ini 2013-12-02 20:21:00 UTC zanardi
1+
; @version backend/en-GB.com_pizzabox.ini 2014-07-23 09:23:00 UTC zanardi
22
; @package GiBi PizzaBox
33
; @author GiBiLogic <[email protected]>
44
; @authorUrl http://www.gibilogic.com
@@ -41,6 +41,8 @@ PIZZABOX_CONFIG_FIELD_EMAIL_NOTIFICATION_LABEL="E-mail notification"
4141
PIZZABOX_CONFIG_FIELD_EMAIL_NOTIFICATION_DESC="Enable e-mail notification when a new order is created"
4242
PIZZABOX_CONFIG_FIELD_EMAIL_ADDRESS_LABEL="E-mail address"
4343
PIZZABOX_CONFIG_FIELD_EMAIL_ADDRESS_DESC="What e-mail address should receive the notification.<br/>If not set, the notification will be sent to all Joomla users that are set to receive system e-mails"
44+
PIZZABOX_CONFIG_FIELD_USER_EMAIL_NOTIFICATION_LABEL="User notification"
45+
PIZZABOX_CONFIG_FIELD_USER_EMAIL_NOTIFICATION_DESC="Enable e-mail notification to the customer as well"
4446

4547
PIZZABOX_CONFIG_FIELDSET_DELIVERY_TITLE="Delivery options"
4648
PIZZABOX_CONFIG_FIELD_TIME_ENABLED_LABEL="Time enabled"

component/backend/language/it-IT/it-IT.com_pizzabox.ini

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
; @version backend/it-IT.com_pizzabox.ini 2013-12-02 20:20:00 UTC zanardi
1+
; @version backend/it-IT.com_pizzabox.ini 2014-07-23 09:23:00 UTC zanardi
22
; @package GiBi PizzaBox
33
; @author GiBiLogic <[email protected]>
44
; @authorUrl http://www.gibilogic.com
@@ -41,6 +41,8 @@ PIZZABOX_CONFIG_FIELD_EMAIL_NOTIFICATION_LABEL="Notifica e-mail"
4141
PIZZABOX_CONFIG_FIELD_EMAIL_NOTIFICATION_DESC="Abilita la notifica via e-mail alla creazione di un nuovo ordine"
4242
PIZZABOX_CONFIG_FIELD_EMAIL_ADDRESS_LABEL="Indirzzi e-mail"
4343
PIZZABOX_CONFIG_FIELD_EMAIL_ADDRESS_DESC="L'indirizzo e-mail a cui mandare la notifica.<br/>Se non è impostato, la notifica verrà inviata a tutti gli utenti Joomla impostati per ricevere le e-mail di sistema"
44+
PIZZABOX_CONFIG_FIELD_USER_EMAIL_NOTIFICATION_LABEL="Notifica utente"
45+
PIZZABOX_CONFIG_FIELD_USER_EMAIL_NOTIFICATION_DESC="Abilita la notifica via e-mail anche all'acquirente"
4446

4547
PIZZABOX_CONFIG_FIELDSET_DELIVERY_TITLE="Opzioni di consegna"
4648
PIZZABOX_CONFIG_FIELD_TIME_ENABLED_LABEL="Orario abilitato"

component/frontend/controllers/delivery.php

+22-11
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
<?php
22

33
/**
4-
* @version frontend/controllers/delivery.php 2013-12-02 20:09:00 UTC zanardi
4+
* @version frontend/controllers/delivery.php 2014-07-23 09:29:00 UTC zanardi
55
* @package GiBi PizzaBox
66
* @author GiBiLogic <[email protected]>
77
* @authorUrl http://www.gibilogic.com
8-
* @copyright (C) 2011-2013 GiBiLogic. All rights reserved.
9-
* @license GNU/GPL v2 or later
8+
* @copyright (C) 2011-2014 GiBiLogic. All rights reserved.
9+
* @license GNU/GPL v3 or later
1010
*/
11-
defined('_JEXEC') or die('The way is shut!');
11+
defined('_JEXEC') or die();
1212

1313
jimport('joomla.application.component.controller');
1414

@@ -104,16 +104,27 @@ public function save()
104104
}
105105
}
106106

107+
/**
108+
* If notification is enabled for admins or users (or both), call the
109+
* notification helper
110+
*
111+
* @return bool
112+
*/
107113
public function emailNotification()
108114
{
109-
$params = & JComponentHelper::getParams('com_pizzabox');
110-
if ($params->get('email_notification', 0) == 1) {
111-
$session = JFactory::getSession();
112-
$order_id = $session->get('com_pizzabox.order.id');
113-
require_once( JPATH_COMPONENT_SITE . '/helpers/pizzabox.php');
114-
$this->helper = new PizzaboxHelper();
115-
$this->helper->emailNotification($order_id);
115+
$params = JComponentHelper::getParams('com_pizzabox');
116+
if ( ! ($params->get('email_notification', 0) || $params->get('user_email_notification', 0)))
117+
{
118+
return false;
119+
}
120+
$order_id = JFactory::getSession()->get('com_pizzabox.order.id');
121+
if( ! $order_id)
122+
{
123+
return false;
116124
}
125+
require_once JPATH_COMPONENT_SITE . '/helpers/pizzabox.php';
126+
$this->helper = new PizzaboxHelper();
127+
$this->helper->emailNotification($order_id);
117128
}
118129

119130
public function selectdate()

component/frontend/helpers/pizzabox.php

+33-11
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?php
22

33
/**
4-
* @version frontend/helpers/pizzabox.php 2013-12-02 20:09:00 UTC zanardi
4+
* @version frontend/helpers/pizzabox.php 2014-07-23 09:36:00 UTC zanardi
55
* @package GiBi PizzaBox
66
* @author GiBiLogic <[email protected]>
77
* @authorUrl http://www.gibilogic.com
@@ -40,6 +40,8 @@ public function formatPrice($price)
4040

4141
public function emailNotification($order_id)
4242
{
43+
$this->params = JComponentHelper::getParams('com_pizzabox');
44+
4345
require_once( JPATH_COMPONENT_ADMINISTRATOR . '/models/orders.php');
4446
$model = new PizzaboxModelOrders();
4547
$model->setId($order_id);
@@ -52,18 +54,12 @@ public function emailNotification($order_id)
5254
$mailer->setSender($config->get('mailfrom', '[email protected]'));
5355

5456
// Recipient(s)
55-
$recipient_email = $this->params->get('email_address', '');
56-
if ($recipient_email)
57-
{
58-
$mailer->addRecipient($recipient_email);
59-
}
60-
else
57+
foreach ($this->getAdminRecipients() as $email => $name)
6158
{
62-
foreach ($this->_getSystemEmailAddresses() as $recipient)
63-
{
64-
$mailer->addRecipient($recipient->email, $recipient->name);
65-
}
59+
$mailer->addRecipient($email, $name);
6660
}
61+
$user = JFactory::getUser();
62+
$mailer->addRecipient($user->email, $user->name);
6763

6864
// Subject and body
6965
$link = JURI::root() . JRoute::_("index.php?option=com_pizzabox&controller=orders&task=edit&id=$order_id");
@@ -75,6 +71,32 @@ public function emailNotification($order_id)
7571
$mailer->send();
7672
}
7773

74+
/**
75+
* Get all admin recipients which should receive the notification
76+
*/
77+
private function getAdminRecipients()
78+
{
79+
if ( ! $this->params->get('email_notification', 0))
80+
{
81+
return array();
82+
}
83+
84+
$recipients = array();
85+
if ($this->params->get('email_address', ''))
86+
{
87+
$recipients[$this->params->get('email_address')] = $this->params->get('email_address');
88+
}
89+
else
90+
{
91+
foreach ($this->_getSystemEmailAddresses() as $recipient)
92+
{
93+
$recipients[$recipient->email] = $recipient->name;
94+
}
95+
}
96+
97+
return $recipients;
98+
}
99+
78100
public function convertOrderRows($rows)
79101
{
80102
$results = array();

0 commit comments

Comments
 (0)