Version Notes
- Fix bugs with the unsubscribe controller
- Fix bug with the backend mass unsubscribe controller
- Next release will include a subscribe on checkout feature.
Download this release
Release Info
Developer | Digital Pianism |
Extension | DigitalPianism_CampaignMonitor |
Version | 0.7.5 |
Comparing to | |
See all releases |
Code changes from version 0.7.4 to 0.7.5
- app/code/community/DigitalPianism/CampaignMonitor/Helper/Data.php +1 -1
- app/code/community/DigitalPianism/CampaignMonitor/Model/Checkout/Observer.php +182 -0
- app/code/community/DigitalPianism/CampaignMonitor/Model/Checkout/Type/Onepage.php +17 -0
- app/code/community/DigitalPianism/CampaignMonitor/controllers/Newsletter/SubscriberController.php +81 -0
- app/code/community/DigitalPianism/CampaignMonitor/controllers/UnsubscribeController.php +56 -9
- app/code/community/DigitalPianism/CampaignMonitor/etc/config.xml +36 -5
- app/code/community/DigitalPianism/CampaignMonitor/etc/system.xml +48 -0
- app/design/frontend/base/default/layout/digitalpianism/campaignmonitor.xml +9 -0
- app/design/frontend/base/default/template/digitalpianism/campaignmonitor/persistent/checkout/billing.phtml +200 -0
- app/design/frontend/base/default/template/digitalpianism/campaignmonitor/persistent/checkout/onepage/checkoutnewsletter.phtml +48 -0
- package.xml +7 -5
app/code/community/DigitalPianism/CampaignMonitor/Helper/Data.php
CHANGED
@@ -7,7 +7,7 @@ class DigitalPianism_CampaignMonitor_Helper_Data extends Mage_Core_Helper_Abstra
|
|
7 |
const CAMPAIGNMONITOR_CONFIG_DATA_KEY = 'newsletter/campaignmonitor/campaignmonitor_data';
|
8 |
const CAMPAIGNMONITOR_SESSION_DATA_KEY = 'campaignmonitor_session_data';
|
9 |
|
10 |
-
protected $logFileName = '
|
11 |
|
12 |
/**
|
13 |
* Log data
|
7 |
const CAMPAIGNMONITOR_CONFIG_DATA_KEY = 'newsletter/campaignmonitor/campaignmonitor_data';
|
8 |
const CAMPAIGNMONITOR_SESSION_DATA_KEY = 'campaignmonitor_session_data';
|
9 |
|
10 |
+
protected $logFileName = 'digitalpianism_campaignmonitor.log';
|
11 |
|
12 |
/**
|
13 |
* Log data
|
app/code/community/DigitalPianism/CampaignMonitor/Model/Checkout/Observer.php
ADDED
@@ -0,0 +1,182 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
// TODO MAPPING
|
3 |
+
include_once MAGENTO_ROOT . "/lib/createsend/csrest_subscribers.php";
|
4 |
+
class DigitalPianism_CampaignMonitor_Model_Checkout_Observer
|
5 |
+
{
|
6 |
+
public function subscribeCustomer($observer)
|
7 |
+
{
|
8 |
+
// Check if the checkbox has been ticked using the sessions
|
9 |
+
if ((bool) Mage::getSingleton('checkout/session')->getCustomerIsSubscribed())
|
10 |
+
{
|
11 |
+
// Get the quote & customer
|
12 |
+
$quote = $observer->getEvent()->getQuote();
|
13 |
+
$order = $observer->getEvent()->getOrder();
|
14 |
+
|
15 |
+
// if (!$order->getCustomerIsGuest()) return;
|
16 |
+
// Mage::helper('campaignmonitor')->log('passed');
|
17 |
+
|
18 |
+
$customer = $quote->getCustomer();
|
19 |
+
$session = Mage::getSingleton('core/session');
|
20 |
+
|
21 |
+
// Get the email using during checking out
|
22 |
+
$email = $order->getCustomerEmail();
|
23 |
+
|
24 |
+
// We get the API and List ID
|
25 |
+
if (Mage::helper('campaignmonitor')->isOAuth())
|
26 |
+
{
|
27 |
+
$accessToken = Mage::getModel('campaignmonitor/auth')->getAccessToken();
|
28 |
+
$refreshToken = Mage::getModel('campaignmonitor/auth')->getRefreshToken();
|
29 |
+
|
30 |
+
$auth = array(
|
31 |
+
'access_token' => $accessToken,
|
32 |
+
'refresh_token' => $refreshToken
|
33 |
+
);
|
34 |
+
}
|
35 |
+
else
|
36 |
+
{
|
37 |
+
$auth = Mage::helper('campaignmonitor')->getApiKey();
|
38 |
+
}
|
39 |
+
|
40 |
+
$listID = Mage::helper('campaignmonitor')->getListId();
|
41 |
+
$apiKey = Mage::helper('campaignmonitor')->getApiKey();
|
42 |
+
|
43 |
+
// Variables
|
44 |
+
$firstname = "";
|
45 |
+
$lastname = "";
|
46 |
+
$mobile = "";
|
47 |
+
$state = "";
|
48 |
+
$postcode = "";
|
49 |
+
$mobilesubscription = "";
|
50 |
+
$jobinterest = "";
|
51 |
+
$preferred_store = "";
|
52 |
+
$promocode = "";
|
53 |
+
$periodicity = "";
|
54 |
+
$dob = "";
|
55 |
+
$subscriptiondate = date("Y-m-d");
|
56 |
+
|
57 |
+
// Check if already susbcribed
|
58 |
+
try {
|
59 |
+
$client = new CS_REST_Subscribers($listID,$auth);
|
60 |
+
$result = $client->get($email);
|
61 |
+
if (!$result->was_successful()) {
|
62 |
+
// If you receive '121: Expired OAuth Token', refresh the access token
|
63 |
+
if ($result->response->Code == 121) {
|
64 |
+
// Refresh the token
|
65 |
+
Mage::helper('campaignmonitor')->refreshToken();
|
66 |
+
}
|
67 |
+
// Make the call again
|
68 |
+
$result = $client->get($email);
|
69 |
+
}
|
70 |
+
} catch(Exception $e) {
|
71 |
+
Mage::helper('campaignmonitor')->log("Error in REST call: ".$e->getMessage());
|
72 |
+
$session->addException($e, Mage::helper('campaignmonitor')->__('There was a problem with the subscription'));
|
73 |
+
}
|
74 |
+
|
75 |
+
// If we are not subscribed in Campaign Monitor
|
76 |
+
if ($result->was_successful() && $result->response->State != 'Active')
|
77 |
+
{
|
78 |
+
// We generate the custom fields
|
79 |
+
if ($mobile = $quote->getBillingAddress()->getTelephone())
|
80 |
+
{
|
81 |
+
$customFields[] = array("Key" => "Mobile", "Value" => $mobile);
|
82 |
+
}
|
83 |
+
$state = $quote->getBillingAddress()->getRegion();
|
84 |
+
$country = $quote->getBillingAddress()->getCountryId();
|
85 |
+
if ($state || $country)
|
86 |
+
{
|
87 |
+
$campaignMonitorStates = Mage::helper('campaignmonitor')->getCampaignMonitorStates();
|
88 |
+
if ($country == "AU" && in_array($state,$campaignMonitorStates))
|
89 |
+
{
|
90 |
+
$customFields[] = array("Key" => "State", "Value" => $state);
|
91 |
+
}
|
92 |
+
elseif($country == "NZ")
|
93 |
+
{
|
94 |
+
$customFields[] = array("Key" => "State", "Value" => "New Zealand");
|
95 |
+
}
|
96 |
+
elseif($country)
|
97 |
+
{
|
98 |
+
$customFields[] = array("Key" => "State", "Value" => "Other");
|
99 |
+
}
|
100 |
+
else
|
101 |
+
{
|
102 |
+
$customFields[] = array("Key" => "State", "Value" => "Unknown");
|
103 |
+
}
|
104 |
+
}
|
105 |
+
else
|
106 |
+
{
|
107 |
+
$customFields[] = array("Key" => "State", "Value" => "Unknown");
|
108 |
+
}
|
109 |
+
if ($postcode = $quote->getBillingAddress()->getPostcode())
|
110 |
+
{
|
111 |
+
$customFields[] = array("Key" => "Postcode", "Value" => $postcode);
|
112 |
+
}
|
113 |
+
if ($dob = $quote->getCustomerDob())
|
114 |
+
{
|
115 |
+
$customFields[] = array("Key" => "DOB", "Value" => $dob);
|
116 |
+
}
|
117 |
+
// And generate the hash
|
118 |
+
$customFields[] = array("Key" => "securehash", "Value" => md5($email.$apiKey));
|
119 |
+
// We generate the Magento fields
|
120 |
+
$fullname = $quote->getBillingAddress()->getName();
|
121 |
+
$fullname = trim($fullname);
|
122 |
+
$names = explode(" ", $fullname, 2);
|
123 |
+
if (!empty($names) && isset($names[0]) && isset($names[1]))
|
124 |
+
{
|
125 |
+
$firstname = (string) $names[0];
|
126 |
+
$lastname = (string) $names[1];
|
127 |
+
}
|
128 |
+
else
|
129 |
+
{
|
130 |
+
$firstname = $fullname;
|
131 |
+
$lastname = "";
|
132 |
+
}
|
133 |
+
$customFields[] = array("Key" => "fullname", "Value" => $fullname);
|
134 |
+
|
135 |
+
// Check the checkout method (logged in, register or guest)
|
136 |
+
switch ($quote->getCheckoutMethod())
|
137 |
+
{
|
138 |
+
// Customer is logged in
|
139 |
+
case Mage_Sales_Model_Quote::CHECKOUT_METHOD_LOGIN_IN:
|
140 |
+
// Customer is registering
|
141 |
+
case Mage_Sales_Model_Quote::CHECKOUT_METHOD_REGISTER:
|
142 |
+
// Customer is a guest
|
143 |
+
case Mage_Sales_Model_Quote::CHECKOUT_METHOD_GUEST:
|
144 |
+
try {
|
145 |
+
// Subscribe the customer to CampaignMonitor
|
146 |
+
if($client) {
|
147 |
+
$result = $client->add(array(
|
148 |
+
"EmailAddress" => $email,
|
149 |
+
"Name" => $fullname,
|
150 |
+
"CustomFields" => $customFields,
|
151 |
+
"Resubscribe" => true));
|
152 |
+
if (!$result->was_successful()) {
|
153 |
+
// If you receive '121: Expired OAuth Token', refresh the access token
|
154 |
+
if ($result->response->Code == 121) {
|
155 |
+
// Refresh the token
|
156 |
+
Mage::helper('campaignmonitor')->refreshToken();
|
157 |
+
}
|
158 |
+
// Make the call again
|
159 |
+
$result = $client->add(array(
|
160 |
+
"EmailAddress" => $email,
|
161 |
+
"Name" => $fullname,
|
162 |
+
"CustomFields" => $customFields,
|
163 |
+
"Resubscribe" => true));
|
164 |
+
}
|
165 |
+
}
|
166 |
+
}
|
167 |
+
catch (Exception $e)
|
168 |
+
{
|
169 |
+
Mage::helper('campaignmonitor')->log("Error in CampaignMonitor REST call: ".$e->getMessage());
|
170 |
+
$session->addException($e, Mage::helper('campaignmonitor')->__('There was a problem with the subscription'));
|
171 |
+
}
|
172 |
+
break;
|
173 |
+
}
|
174 |
+
}
|
175 |
+
|
176 |
+
// Remove the session variable
|
177 |
+
Mage::getSingleton('checkout/session')->setCustomerIsSubscribed(0);
|
178 |
+
|
179 |
+
Mage::getModel('campaignmonitor/subscriber')->syncSubscriber($email,true);
|
180 |
+
}
|
181 |
+
}
|
182 |
+
}
|
app/code/community/DigitalPianism/CampaignMonitor/Model/Checkout/Type/Onepage.php
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class DigitalPianism_CampaignMonitor_Model_Checkout_Type_Onepage extends Mage_Checkout_Model_Type_Onepage
|
4 |
+
{
|
5 |
+
public function saveBilling($data, $customerAddressId)
|
6 |
+
{
|
7 |
+
if (isset($data['is_subscribed']) && !empty($data['is_subscribed']))
|
8 |
+
{
|
9 |
+
$this->getCheckout()->setCustomerIsSubscribed(1);
|
10 |
+
}
|
11 |
+
else
|
12 |
+
{
|
13 |
+
$this->getCheckout()->setCustomerIsSubscribed(0);
|
14 |
+
}
|
15 |
+
return parent::saveBilling($data, $customerAddressId);
|
16 |
+
}
|
17 |
+
}
|
app/code/community/DigitalPianism/CampaignMonitor/controllers/Newsletter/SubscriberController.php
ADDED
@@ -0,0 +1,81 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
include_once MAGENTO_ROOT . "/lib/createsend/csrest_subscribers.php";
|
3 |
+
require_once 'Mage/Adminhtml/controllers/Newsletter/SubscriberController.php';
|
4 |
+
|
5 |
+
class DigitalPianism_CampaignMonitor_Newsletter_SubscriberController extends Mage_Adminhtml_Newsletter_SubscriberController
|
6 |
+
{
|
7 |
+
public function massUnsubscribeAction()
|
8 |
+
{
|
9 |
+
Mage::helper('campaignmonitor')->log("massUnsubscribeAction");
|
10 |
+
|
11 |
+
$subscribersIds = $this->getRequest()->getParam('subscriber');
|
12 |
+
if (!is_array($subscribersIds)) {
|
13 |
+
Mage::getSingleton('adminhtml/session')->addError(Mage::helper('newsletter')->__('Please select subscriber(s)'));
|
14 |
+
$this->_redirect('*/*/index');
|
15 |
+
}
|
16 |
+
else {
|
17 |
+
try {
|
18 |
+
|
19 |
+
if (Mage::helper('campaignmonitor')->isOAuth())
|
20 |
+
{
|
21 |
+
$accessToken = Mage::getModel('campaignmonitor/auth')->getAccessToken();
|
22 |
+
$refreshToken = Mage::getModel('campaignmonitor/auth')->getRefreshToken();
|
23 |
+
|
24 |
+
$auth = array(
|
25 |
+
'access_token' => $accessToken,
|
26 |
+
'refresh_token' => $refreshToken
|
27 |
+
);
|
28 |
+
}
|
29 |
+
else
|
30 |
+
{
|
31 |
+
$auth = Mage::helper('campaignmonitor')->getApiKey();
|
32 |
+
}
|
33 |
+
|
34 |
+
$listID = Mage::helper('campaignmonitor')->getListId();
|
35 |
+
|
36 |
+
try
|
37 |
+
{
|
38 |
+
$client = new CS_REST_Subscribers($listID,$auth);
|
39 |
+
}
|
40 |
+
catch(Exception $e)
|
41 |
+
{
|
42 |
+
Mage::helper('campaignmonitor')->log("Error connecting to CampaignMonitor server: ".$e->getMessage());
|
43 |
+
$session->addException($e, $this->__('There was a problem with the subscription'));
|
44 |
+
$this->_redirectReferer();
|
45 |
+
}
|
46 |
+
|
47 |
+
foreach ($subscribersIds as $subscriberId)
|
48 |
+
{
|
49 |
+
$subscriber = Mage::getModel('newsletter/subscriber')->load($subscriberId);
|
50 |
+
$email = $subscriber->getEmail();
|
51 |
+
Mage::helper('campaignmonitor')->log($this->__("Unsubscribing: %s", $email));
|
52 |
+
|
53 |
+
try
|
54 |
+
{
|
55 |
+
$result = $client->unsubscribe($email);
|
56 |
+
if (!$result->was_successful()) {
|
57 |
+
// If you receive '121: Expired OAuth Token', refresh the access token
|
58 |
+
if ($result->response->Code == 121) {
|
59 |
+
// Refresh the token
|
60 |
+
Mage::helper('campaignmonitor')->refreshToken();
|
61 |
+
}
|
62 |
+
// Make the call again
|
63 |
+
$result = $client->unsubscribe($email);
|
64 |
+
}
|
65 |
+
}
|
66 |
+
catch (Exception $e)
|
67 |
+
{
|
68 |
+
Mage::helper('campaignmonitor')->log("Error in CampaignMonitor SOAP call: ".$e->getMessage());
|
69 |
+
}
|
70 |
+
}
|
71 |
+
}
|
72 |
+
catch (Exception $e)
|
73 |
+
{
|
74 |
+
Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
|
75 |
+
}
|
76 |
+
}
|
77 |
+
|
78 |
+
parent::massUnsubscribeAction();
|
79 |
+
}
|
80 |
+
}
|
81 |
+
?>
|
app/code/community/DigitalPianism/CampaignMonitor/controllers/UnsubscribeController.php
CHANGED
@@ -43,7 +43,7 @@ class DigitalPianism_CampaignMonitor_UnsubscribeController extends Mage_Core_Con
|
|
43 |
Mage::helper('campaignmonitor')->refreshToken();
|
44 |
}
|
45 |
// Make the call again
|
46 |
-
$result = $client->get($email)
|
47 |
}
|
48 |
}
|
49 |
catch (Exception $e)
|
@@ -68,22 +68,68 @@ class DigitalPianism_CampaignMonitor_UnsubscribeController extends Mage_Core_Con
|
|
68 |
$session->addException($e, $this->__('There was a problem with the unsubscription'));
|
69 |
$this->_redirectReferer();
|
70 |
}
|
71 |
-
|
72 |
-
// If we are unsubscribed in Campaign Monitor, mark us as
|
73 |
// unsubscribed in Magento.
|
74 |
-
if($state
|
75 |
{
|
76 |
try
|
77 |
{
|
78 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
79 |
|
80 |
-
$
|
|
|
|
|
81 |
->loadByEmail($email)
|
82 |
->unsubscribe();
|
83 |
-
|
84 |
-
|
85 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
86 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
87 |
Mage::helper('campaignmonitor')->log(sprintf("%s", $e->getMessage()));
|
88 |
Mage::getSingleton('customer/session')->addError($this->__('There was an error while saving your subscription details'));
|
89 |
}
|
@@ -94,6 +140,7 @@ class DigitalPianism_CampaignMonitor_UnsubscribeController extends Mage_Core_Con
|
|
94 |
}
|
95 |
}
|
96 |
}
|
|
|
97 |
}
|
98 |
}
|
99 |
?>
|
43 |
Mage::helper('campaignmonitor')->refreshToken();
|
44 |
}
|
45 |
// Make the call again
|
46 |
+
$result = $client->get($email);
|
47 |
}
|
48 |
}
|
49 |
catch (Exception $e)
|
68 |
$session->addException($e, $this->__('There was a problem with the unsubscription'));
|
69 |
$this->_redirectReferer();
|
70 |
}
|
71 |
+
|
72 |
+
// If we are unsubscribed, deleted or not subscribed in Campaign Monitor, mark us as
|
73 |
// unsubscribed in Magento.
|
74 |
+
if ($state != "Unsubscribed" && $state != "Not Subscribed" && $state != "Deleted")
|
75 |
{
|
76 |
try
|
77 |
{
|
78 |
+
$result = $client->unsubscribe($email);
|
79 |
+
if (!$result->was_successful()) {
|
80 |
+
// If you receive '121: Expired OAuth Token', refresh the access token
|
81 |
+
if ($result->response->Code == 121) {
|
82 |
+
// Refresh the token
|
83 |
+
Mage::helper('campaignmonitor')->refreshToken();
|
84 |
+
}
|
85 |
+
// Make the call again
|
86 |
+
$result = $client->unsubscribe($email);
|
87 |
+
}
|
88 |
|
89 |
+
if($result->was_successful())
|
90 |
+
{
|
91 |
+
$collection = Mage::getModel('newsletter/subscriber')
|
92 |
->loadByEmail($email)
|
93 |
->unsubscribe();
|
94 |
+
Mage::getSingleton('customer/session')->addSuccess($this->__('You were successfully unsubscribed'));
|
95 |
+
}
|
96 |
+
}
|
97 |
+
catch (Exception $e)
|
98 |
+
{
|
99 |
+
Mage::helper('campaignmonitor')->log(sprintf("%s", $e->getMessage()));
|
100 |
+
Mage::getSingleton('customer/session')->addError($this->__('There was an error while saving your subscription details'));
|
101 |
+
}
|
102 |
+
}
|
103 |
+
elseif($state == "Unsubscribed" || $state == "Not Subscribed" || $state == "Deleted")
|
104 |
+
{
|
105 |
+
try
|
106 |
{
|
107 |
+
$subscriberStatus = Mage::getModel('newsletter/subscriber')
|
108 |
+
->loadByEmail($email)
|
109 |
+
->getStatus();
|
110 |
+
// 2 = Not Activated
|
111 |
+
// 1 = Subscribed
|
112 |
+
// 3 = Unsubscribed
|
113 |
+
// 4 = Unconfirmed
|
114 |
+
if ($subscriberStatus != 3)
|
115 |
+
{
|
116 |
+
$unsubscribe = Mage::getModel('newsletter/subscriber')
|
117 |
+
->loadByEmail($email)
|
118 |
+
->unsubscribe();
|
119 |
+
Mage::getSingleton('customer/session')->addSuccess($this->__('You were successfully unsubscribed'));
|
120 |
+
|
121 |
+
$block = Mage::getModel('cms/block')->load('unsubscribe-custom-message');
|
122 |
+
|
123 |
+
if ($block)
|
124 |
+
{
|
125 |
+
Mage::getSingleton('customer/session')->addNotice($block->getContent());
|
126 |
+
}
|
127 |
+
}
|
128 |
+
else
|
129 |
+
{
|
130 |
+
Mage::getSingleton('customer/session')->addSuccess($this->__('You have already unsubscribed to our newsletter, click <a href="/subscribe">here</a> to resubscribe'));
|
131 |
+
}
|
132 |
+
} catch (Exception $e) {
|
133 |
Mage::helper('campaignmonitor')->log(sprintf("%s", $e->getMessage()));
|
134 |
Mage::getSingleton('customer/session')->addError($this->__('There was an error while saving your subscription details'));
|
135 |
}
|
140 |
}
|
141 |
}
|
142 |
}
|
143 |
+
$this->_redirect('/');
|
144 |
}
|
145 |
}
|
146 |
?>
|
app/code/community/DigitalPianism/CampaignMonitor/etc/config.xml
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
|
4 |
<modules>
|
5 |
<DigitalPianism_CampaignMonitor>
|
6 |
-
<version>0.7.
|
7 |
</DigitalPianism_CampaignMonitor>
|
8 |
</modules>
|
9 |
|
@@ -18,6 +18,16 @@
|
|
18 |
</args>
|
19 |
</campaignmonitor>
|
20 |
</routers>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
</frontend>
|
22 |
|
23 |
<admin>
|
@@ -29,6 +39,13 @@
|
|
29 |
<frontName>admincampaignmonitor</frontName>
|
30 |
</args>
|
31 |
</campaignmonitor>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
</routers>
|
33 |
</admin>
|
34 |
|
@@ -40,10 +57,6 @@
|
|
40 |
<from><![CDATA[#^/newsletter/subscriber#]]></from>
|
41 |
<to>/campaignmonitor/hook</to>
|
42 |
</digitalpianism_campaignmonitor_new>
|
43 |
-
<digitalpianism_campaignmonitor_admin>
|
44 |
-
<from><![CDATA[#^/admin/newsletter_subscriber/massUnsubscribe#]]></from>
|
45 |
-
<to>/admincampaignmonitor/adminhook</to>
|
46 |
-
</digitalpianism_campaignmonitor_admin>
|
47 |
</rewrite>
|
48 |
|
49 |
<helpers>
|
@@ -58,6 +71,13 @@
|
|
58 |
<campaignmonitor>
|
59 |
<class>DigitalPianism_CampaignMonitor_Model</class>
|
60 |
</campaignmonitor>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
61 |
</models>
|
62 |
|
63 |
<!-- Observer events -->
|
@@ -80,6 +100,17 @@
|
|
80 |
</digitalpianism_campaignmonitor_observer_2>
|
81 |
</observers>
|
82 |
</customer_delete_before>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
83 |
</events>
|
84 |
|
85 |
</global>
|
3 |
|
4 |
<modules>
|
5 |
<DigitalPianism_CampaignMonitor>
|
6 |
+
<version>0.7.5</version>
|
7 |
</DigitalPianism_CampaignMonitor>
|
8 |
</modules>
|
9 |
|
18 |
</args>
|
19 |
</campaignmonitor>
|
20 |
</routers>
|
21 |
+
<!-- Frontend layout file -->
|
22 |
+
<!--
|
23 |
+
<layout>
|
24 |
+
<updates>
|
25 |
+
<campaignmonitor>
|
26 |
+
<file>digitalpianism/campaignmonitor.xml</file>
|
27 |
+
</campaignmonitor>
|
28 |
+
</updates>
|
29 |
+
</layout>
|
30 |
+
-->
|
31 |
</frontend>
|
32 |
|
33 |
<admin>
|
39 |
<frontName>admincampaignmonitor</frontName>
|
40 |
</args>
|
41 |
</campaignmonitor>
|
42 |
+
<adminhtml>
|
43 |
+
<args>
|
44 |
+
<modules>
|
45 |
+
<DigitalPianism_CampaignMonitor before="Mage_Adminhtml">DigitalPianism_CampaignMonitor</DigitalPianism_CampaignMonitor>
|
46 |
+
</modules>
|
47 |
+
</args>
|
48 |
+
</adminhtml>
|
49 |
</routers>
|
50 |
</admin>
|
51 |
|
57 |
<from><![CDATA[#^/newsletter/subscriber#]]></from>
|
58 |
<to>/campaignmonitor/hook</to>
|
59 |
</digitalpianism_campaignmonitor_new>
|
|
|
|
|
|
|
|
|
60 |
</rewrite>
|
61 |
|
62 |
<helpers>
|
71 |
<campaignmonitor>
|
72 |
<class>DigitalPianism_CampaignMonitor_Model</class>
|
73 |
</campaignmonitor>
|
74 |
+
<!-- Override original checkout onepage model -->
|
75 |
+
<checkout>
|
76 |
+
<rewrite>
|
77 |
+
<!-- Mage_Checkout_Model_Type_Onepage -->
|
78 |
+
<!--<type_onepage>DigitalPianism_CampaignMonitor_Model_Checkout_Type_Onepage</type_onepage>-->
|
79 |
+
</rewrite>
|
80 |
+
</checkout>
|
81 |
</models>
|
82 |
|
83 |
<!-- Observer events -->
|
100 |
</digitalpianism_campaignmonitor_observer_2>
|
101 |
</observers>
|
102 |
</customer_delete_before>
|
103 |
+
<!-- TODO
|
104 |
+
<checkout_type_onepage_save_order_after>
|
105 |
+
<observers>
|
106 |
+
<subscribeCustomer>
|
107 |
+
<type>singleton</type>
|
108 |
+
<class>campaignmonitor/checkout_observer</class>
|
109 |
+
<method>subscribeCustomer</method>
|
110 |
+
</subscribeCustomer>
|
111 |
+
</observers>
|
112 |
+
</checkout_type_onepage_save_order_after>
|
113 |
+
-->
|
114 |
</events>
|
115 |
|
116 |
</global>
|
app/code/community/DigitalPianism/CampaignMonitor/etc/system.xml
CHANGED
@@ -86,6 +86,54 @@
|
|
86 |
</m_to_cm_attributes>
|
87 |
</fields>
|
88 |
</campaignmonitor>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
89 |
</groups>
|
90 |
</newsletter>
|
91 |
</sections>
|
86 |
</m_to_cm_attributes>
|
87 |
</fields>
|
88 |
</campaignmonitor>
|
89 |
+
<!--
|
90 |
+
<checkoutnewsletter translate="label">
|
91 |
+
<label>Checkout Newsletter</label>
|
92 |
+
<frontend_type>text</frontend_type>
|
93 |
+
<sort_order>2</sort_order>
|
94 |
+
<show_in_default>1</show_in_default>
|
95 |
+
<show_in_website>1</show_in_website>
|
96 |
+
<show_in_store>1</show_in_store>
|
97 |
+
<fields>
|
98 |
+
<enable translate="label">
|
99 |
+
<label>Enable</label>
|
100 |
+
<frontend_type>select</frontend_type>
|
101 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
102 |
+
<sort_order>1</sort_order>
|
103 |
+
<show_in_default>1</show_in_default>
|
104 |
+
<show_in_website>1</show_in_website>
|
105 |
+
<show_in_store>1</show_in_store>
|
106 |
+
</enable>
|
107 |
+
<checked translate="label">
|
108 |
+
<label>Checked by default</label>
|
109 |
+
<frontend_type>select</frontend_type>
|
110 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
111 |
+
<sort_order>2</sort_order>
|
112 |
+
<show_in_default>1</show_in_default>
|
113 |
+
<show_in_website>1</show_in_website>
|
114 |
+
<show_in_store>1</show_in_store>
|
115 |
+
</checked>
|
116 |
+
<visible_guest translate="label">
|
117 |
+
<label>Visible to guest</label>
|
118 |
+
<frontend_type>select</frontend_type>
|
119 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
120 |
+
<sort_order>3</sort_order>
|
121 |
+
<show_in_default>1</show_in_default>
|
122 |
+
<show_in_website>1</show_in_website>
|
123 |
+
<show_in_store>1</show_in_store>
|
124 |
+
</visible_guest>
|
125 |
+
<visible_register translate="label">
|
126 |
+
<label>Visible to registrant</label>
|
127 |
+
<frontend_type>select</frontend_type>
|
128 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
129 |
+
<sort_order>4</sort_order>
|
130 |
+
<show_in_default>1</show_in_default>
|
131 |
+
<show_in_website>1</show_in_website>
|
132 |
+
<show_in_store>1</show_in_store>
|
133 |
+
</visible_register>
|
134 |
+
</fields>
|
135 |
+
</checkoutnewsletter>
|
136 |
+
-->
|
137 |
</groups>
|
138 |
</newsletter>
|
139 |
</sections>
|
app/design/frontend/base/default/layout/digitalpianism/campaignmonitor.xml
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<layout version="0.1.0">
|
3 |
+
<checkout_onepage_index>
|
4 |
+
<reference name="checkout.onepage.billing">
|
5 |
+
<action method="setTemplate"><template>digitalpianism/campaignmonitor/persistent/checkout/onepage/billing.phtml</template></action>
|
6 |
+
<block type="campaignmonitor/checkoutnewsletter" name="checkoutnewsletter" template="digitalpianism/campaignmonitor/persistent/checkout/onepage/checkoutnewsletter.phtml" />
|
7 |
+
</reference>
|
8 |
+
</checkout_onepage_index>
|
9 |
+
</layout>
|
app/design/frontend/base/default/template/digitalpianism/campaignmonitor/persistent/checkout/billing.phtml
ADDED
@@ -0,0 +1,200 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<form id="co-billing-form" action="">
|
2 |
+
<fieldset>
|
3 |
+
<ul class="form-list">
|
4 |
+
<?php if ($this->customerHasAddresses()): ?>
|
5 |
+
<li class="wide">
|
6 |
+
<label for="billing-address-select"><?php echo $this->__('Select a billing address from your address book or enter a new address.') ?></label>
|
7 |
+
<div class="input-box">
|
8 |
+
<?php echo $this->getAddressesHtmlSelect('billing') ?>
|
9 |
+
</div>
|
10 |
+
</li>
|
11 |
+
<?php endif; ?>
|
12 |
+
<li id="billing-new-address-form"<?php if ($this->customerHasAddresses()): ?> style="display:none;"<?php endif; ?>>
|
13 |
+
<fieldset>
|
14 |
+
<input type="hidden" name="billing[address_id]" value="<?php echo $this->getAddress()->getId() ?>" id="billing:address_id" />
|
15 |
+
<ul>
|
16 |
+
<li class="fields"><?php echo $this->getLayout()->createBlock('customer/widget_name')->setObject($this->getAddress()->getFirstname() ? $this->getAddress() : $this->getQuote()->getCustomer())->setForceUseCustomerRequiredAttributes(!$this->isCustomerLoggedIn())->setFieldIdFormat('billing:%s')->setFieldNameFormat('billing[%s]')->toHtml() ?></li>
|
17 |
+
<li class="fields">
|
18 |
+
<div class="field">
|
19 |
+
<label for="billing:company"><?php echo $this->__('Company') ?></label>
|
20 |
+
<div class="input-box">
|
21 |
+
<input type="text" id="billing:company" name="billing[company]" value="<?php echo $this->escapeHtml($this->getAddress()->getCompany()) ?>" title="<?php echo $this->__('Company') ?>" class="input-text <?php echo $this->helper('customer/address')->getAttributeValidationClass('company') ?>" />
|
22 |
+
</div>
|
23 |
+
</div>
|
24 |
+
<?php if(!$this->isCustomerLoggedIn()): ?>
|
25 |
+
<div class="field">
|
26 |
+
<label for="billing:email" class="required"><em>*</em><?php echo $this->__('Email Address') ?></label>
|
27 |
+
<div class="input-box">
|
28 |
+
<input type="text" name="billing[email]" id="billing:email" value="<?php echo $this->escapeHtml($this->getAddress()->getEmail()) ?>" title="<?php echo $this->__('Email Address') ?>" class="input-text validate-email required-entry" />
|
29 |
+
</div>
|
30 |
+
</div>
|
31 |
+
<?php endif; ?>
|
32 |
+
</li>
|
33 |
+
<?php $_streetValidationClass = $this->helper('customer/address')->getAttributeValidationClass('street'); ?>
|
34 |
+
<li class="wide">
|
35 |
+
<label for="billing:street1" class="required"><em>*</em><?php echo $this->__('Address') ?></label>
|
36 |
+
<div class="input-box">
|
37 |
+
<input type="text" title="<?php echo $this->__('Street Address') ?>" name="billing[street][]" id="billing:street1" value="<?php echo $this->escapeHtml($this->getAddress()->getStreet(1)) ?>" class="input-text <?php echo $_streetValidationClass ?>" />
|
38 |
+
</div>
|
39 |
+
</li>
|
40 |
+
<?php $_streetValidationClass = trim(str_replace('required-entry', '', $_streetValidationClass)); ?>
|
41 |
+
<?php for ($_i = 2, $_n = $this->helper('customer/address')->getStreetLines(); $_i <= $_n; $_i++): ?>
|
42 |
+
<li class="wide">
|
43 |
+
<div class="input-box">
|
44 |
+
<input type="text" title="<?php echo $this->__('Street Address %s', $_i) ?>" name="billing[street][]" id="billing:street<?php echo $_i ?>" value="<?php echo $this->escapeHtml($this->getAddress()->getStreet($_i)) ?>" class="input-text <?php echo $_streetValidationClass ?>" />
|
45 |
+
</div>
|
46 |
+
</li>
|
47 |
+
<?php endfor; ?>
|
48 |
+
<?php if ($this->helper('customer/address')->isVatAttributeVisible()) : ?>
|
49 |
+
<li class="wide">
|
50 |
+
<label for="billing:vat_id"><?php echo $this->__('VAT Number') ?></label>
|
51 |
+
<div class="input-box">
|
52 |
+
<input type="text" id="billing:vat_id" name="billing[vat_id]" value="<?php echo $this->escapeHtml($this->getAddress()->getVatId()) ?>" title="<?php echo $this->__('VAT Number') ?>" class="input-text <?php echo $this->helper('customer/address')->getAttributeValidationClass('vat_id') ?>" />
|
53 |
+
</div>
|
54 |
+
</li>
|
55 |
+
<?php endif; ?>
|
56 |
+
<li class="fields">
|
57 |
+
<div class="field">
|
58 |
+
<label for="billing:city" class="required"><em>*</em><?php echo $this->__('City') ?></label>
|
59 |
+
<div class="input-box">
|
60 |
+
<input type="text" title="<?php echo $this->__('City') ?>" name="billing[city]" value="<?php echo $this->escapeHtml($this->getAddress()->getCity()) ?>" class="input-text <?php echo $this->helper('customer/address')->getAttributeValidationClass('city') ?>" id="billing:city" />
|
61 |
+
</div>
|
62 |
+
</div>
|
63 |
+
<div class="field">
|
64 |
+
<label for="billing:region_id" class="required"><em>*</em><?php echo $this->__('State/Province') ?></label>
|
65 |
+
<div class="input-box">
|
66 |
+
<select id="billing:region_id" name="billing[region_id]" title="<?php echo $this->__('State/Province') ?>" class="validate-select" style="display:none;">
|
67 |
+
<option value=""><?php echo $this->__('Please select region, state or province') ?></option>
|
68 |
+
</select>
|
69 |
+
<script type="text/javascript">
|
70 |
+
//<![CDATA[
|
71 |
+
$('billing:region_id').setAttribute('defaultValue', "<?php echo $this->getAddress()->getRegionId() ?>");
|
72 |
+
//]]>
|
73 |
+
</script>
|
74 |
+
<input type="text" id="billing:region" name="billing[region]" value="<?php echo $this->escapeHtml($this->getAddress()->getRegion()) ?>" title="<?php echo $this->__('State/Province') ?>" class="input-text <?php echo $this->helper('customer/address')->getAttributeValidationClass('region') ?>" style="display:none;" />
|
75 |
+
</div>
|
76 |
+
</div>
|
77 |
+
</li>
|
78 |
+
<li class="fields">
|
79 |
+
<div class="field">
|
80 |
+
<label for="billing:postcode" class="required"><em>*</em><?php echo $this->__('Zip/Postal Code') ?></label>
|
81 |
+
<div class="input-box">
|
82 |
+
<input type="text" title="<?php echo $this->__('Zip/Postal Code') ?>" name="billing[postcode]" id="billing:postcode" value="<?php echo $this->escapeHtml($this->getAddress()->getPostcode()) ?>" class="input-text validate-zip-international <?php echo $this->helper('customer/address')->getAttributeValidationClass('postcode') ?>" />
|
83 |
+
</div>
|
84 |
+
</div>
|
85 |
+
<div class="field">
|
86 |
+
<label for="billing:country_id" class="required"><em>*</em><?php echo $this->__('Country') ?></label>
|
87 |
+
<div class="input-box">
|
88 |
+
<?php echo $this->getCountryHtmlSelect('billing') ?>
|
89 |
+
</div>
|
90 |
+
</div>
|
91 |
+
</li>
|
92 |
+
<li class="fields">
|
93 |
+
<div class="field">
|
94 |
+
<label for="billing:telephone" class="required"><em>*</em><?php echo $this->__('Telephone') ?></label>
|
95 |
+
<div class="input-box">
|
96 |
+
<input type="text" name="billing[telephone]" value="<?php echo $this->escapeHtml($this->getAddress()->getTelephone()) ?>" title="<?php echo $this->__('Telephone') ?>" class="input-text <?php echo $this->helper('customer/address')->getAttributeValidationClass('telephone') ?>" id="billing:telephone" />
|
97 |
+
</div>
|
98 |
+
</div>
|
99 |
+
<div class="field">
|
100 |
+
<label for="billing:fax"><?php echo $this->__('Fax') ?></label>
|
101 |
+
<div class="input-box">
|
102 |
+
<input type="text" name="billing[fax]" value="<?php echo $this->escapeHtml($this->getAddress()->getFax()) ?>" title="<?php echo $this->__('Fax') ?>" class="input-text <?php echo $this->helper('customer/address')->getAttributeValidationClass('fax') ?>" id="billing:fax" />
|
103 |
+
</div>
|
104 |
+
</div>
|
105 |
+
</li>
|
106 |
+
<?php if(!$this->isCustomerLoggedIn()): ?>
|
107 |
+
|
108 |
+
<?php $_dob = $this->getLayout()->createBlock('customer/widget_dob') ?>
|
109 |
+
<?php $_gender = $this->getLayout()->createBlock('customer/widget_gender') ?>
|
110 |
+
<?php if ($_dob->isEnabled() || $_gender->isEnabled()): ?>
|
111 |
+
<li class="fields">
|
112 |
+
<?php if ($_dob->isEnabled()): ?>
|
113 |
+
<div class="field">
|
114 |
+
<?php echo $_dob->setDate($this->getQuote()->getCustomerDob())->setFieldIdFormat('billing:%s')->setFieldNameFormat('billing[%s]')->toHtml() ?>
|
115 |
+
</div>
|
116 |
+
<?php endif; ?>
|
117 |
+
<?php if ($_gender->isEnabled()): ?>
|
118 |
+
<div class="field">
|
119 |
+
<?php echo $_gender->setGender($this->getQuote()->getCustomerGender())->setFieldIdFormat('billing:%s')->setFieldNameFormat('billing[%s]')->toHtml() ?>
|
120 |
+
</div>
|
121 |
+
<?php endif ?>
|
122 |
+
</li>
|
123 |
+
<?php endif ?>
|
124 |
+
|
125 |
+
<?php if ($this->isTaxvatEnabled()):?>
|
126 |
+
<li><?php echo $this->getTaxvatHtml() ?></li>
|
127 |
+
<?php endif; ?>
|
128 |
+
|
129 |
+
<li class="fields" id="register-customer-password">
|
130 |
+
<div class="field">
|
131 |
+
<label for="billing:customer_password" class="required"><em>*</em><?php echo $this->__('Password') ?></label>
|
132 |
+
<div class="input-box">
|
133 |
+
<input type="password" name="billing[customer_password]" id="billing:customer_password" title="<?php echo $this->__('Password') ?>" class="input-text required-entry validate-password" />
|
134 |
+
</div>
|
135 |
+
</div>
|
136 |
+
<div class="field">
|
137 |
+
<label for="billing:confirm_password" class="required"><em>*</em><?php echo $this->__('Confirm Password') ?></label>
|
138 |
+
<div class="input-box">
|
139 |
+
<input type="password" name="billing[confirm_password]" title="<?php echo $this->__('Confirm Password') ?>" id="billing:confirm_password" class="input-text required-entry validate-cpassword" />
|
140 |
+
</div>
|
141 |
+
</div>
|
142 |
+
</li>
|
143 |
+
<?php echo $this->getChildHtml('persistent.remember.me'); ?>
|
144 |
+
<?php endif; ?>
|
145 |
+
<?php if ($this->isCustomerLoggedIn() && $this->customerHasAddresses()):?>
|
146 |
+
<li class="control">
|
147 |
+
<input type="checkbox" name="billing[save_in_address_book]" value="1" title="<?php echo $this->__('Save in address book') ?>" id="billing:save_in_address_book" onchange="if(window.shipping) shipping.setSameAsBilling(false);"<?php if ($this->getAddress()->getSaveInAddressBook()):?> checked="checked"<?php endif;?> class="checkbox" /><label for="billing:save_in_address_book"><?php echo $this->__('Save in address book') ?></label>
|
148 |
+
</li>
|
149 |
+
<?php else:?>
|
150 |
+
<li class="no-display"><input type="hidden" name="billing[save_in_address_book]" value="1" /></li>
|
151 |
+
<?php endif; ?>
|
152 |
+
<?php echo $this->getChildHtml('checkoutnewsletter'); ?>
|
153 |
+
<?php echo $this->getChildHtml('form.additional.info'); ?>
|
154 |
+
</ul>
|
155 |
+
<?php echo $this->getChildHtml('persistent.remember.me.tooltip'); ?>
|
156 |
+
</fieldset>
|
157 |
+
</li>
|
158 |
+
<?php if ($this->canShip()): ?>
|
159 |
+
<li class="control">
|
160 |
+
<input type="radio" name="billing[use_for_shipping]" id="billing:use_for_shipping_yes" value="1"<?php if ($this->isUseBillingAddressForShipping()) {?> checked="checked"<?php }?> title="<?php echo $this->__('Ship to this address') ?>" onclick="$('shipping:same_as_billing').checked = true;" class="radio" /><label for="billing:use_for_shipping_yes"><?php echo $this->__('Ship to this address') ?></label></li>
|
161 |
+
<li class="control">
|
162 |
+
<input type="radio" name="billing[use_for_shipping]" id="billing:use_for_shipping_no" value="0"<?php if (!$this->isUseBillingAddressForShipping()) {?> checked="checked"<?php }?> title="<?php echo $this->__('Ship to different address') ?>" onclick="$('shipping:same_as_billing').checked = false;" class="radio" /><label for="billing:use_for_shipping_no"><?php echo $this->__('Ship to different address') ?></label>
|
163 |
+
</li>
|
164 |
+
<?php endif; ?>
|
165 |
+
</ul>
|
166 |
+
<?php if (!$this->canShip()): ?>
|
167 |
+
<input type="hidden" name="billing[use_for_shipping]" value="1" />
|
168 |
+
<?php endif; ?>
|
169 |
+
<div class="buttons-set" id="billing-buttons-container">
|
170 |
+
<p class="required"><?php echo $this->__('* Required Fields') ?></p>
|
171 |
+
<button type="button" title="<?php echo $this->__('Continue') ?>" class="button" onclick="billing.save()"><span><span><?php echo $this->__('Continue') ?></span></span></button>
|
172 |
+
<span class="please-wait" id="billing-please-wait" style="display:none;">
|
173 |
+
<img src="<?php echo $this->getSkinUrl('images/opc-ajax-loader.gif') ?>" alt="<?php echo $this->__('Loading next step...') ?>" title="<?php echo $this->__('Loading next step...') ?>" class="v-middle" /> <?php echo $this->__('Loading next step...') ?>
|
174 |
+
</span>
|
175 |
+
</div>
|
176 |
+
</fieldset>
|
177 |
+
</form>
|
178 |
+
<script type="text/javascript">
|
179 |
+
//<![CDATA[
|
180 |
+
var billing = new Billing('co-billing-form', '<?php echo $this->getUrl('checkout/onepage/getAddress') ?>address/', '<?php echo $this->getUrl('checkout/onepage/saveBilling') ?>');
|
181 |
+
var billingForm = new VarienForm('co-billing-form');
|
182 |
+
|
183 |
+
//billingForm.setElementsRelation('billing:country_id', 'billing:region', '<?php echo $this->getUrl('directory/json/childRegion') ?>', '<?php echo $this->__('Select State/Province...') ?>');
|
184 |
+
$('billing-address-select') && billing.newAddress(!$('billing-address-select').value);
|
185 |
+
|
186 |
+
var billingRegionUpdater = new RegionUpdater('billing:country_id', 'billing:region', 'billing:region_id', <?php echo $this->helper('directory')->getRegionJson() ?>, undefined, 'billing:postcode');
|
187 |
+
if ($('onepage-guest-register-button')) {
|
188 |
+
Event.observe($('onepage-guest-register-button'), 'click', function(event) {
|
189 |
+
var billingRememberMe = $('co-billing-form').select('#remember-me-box');
|
190 |
+
if (billingRememberMe.length > 0) {
|
191 |
+
if ($('login:guest') && $('login:guest').checked) {
|
192 |
+
billingRememberMe[0].hide();
|
193 |
+
} else if ($('login:register') && ($('login:register').checked || $('login:register').type == 'hidden')) {
|
194 |
+
billingRememberMe[0].show();
|
195 |
+
}
|
196 |
+
}
|
197 |
+
});
|
198 |
+
}
|
199 |
+
//]]>
|
200 |
+
</script>
|
app/design/frontend/base/default/template/digitalpianism/campaignmonitor/persistent/checkout/onepage/checkoutnewsletter.phtml
ADDED
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$helper = Mage::helper('campaignmonitor');
|
3 |
+
if (Mage::helper('campaignmonitor')->isCheckoutNewsletterEnabled()): ?>
|
4 |
+
<li id="register-customer-newsletter">
|
5 |
+
<input type="checkbox" name="billing[is_subscribed]" value="1" title="<?php echo Mage::helper('customer')->__('Sign Up for Newsletter') ?>" id="billing:is_subscribed"<?php echo ($this->isChecked() || $helper->isCheckoutNewsletterChecked())?' checked="checked"':'' ?> />
|
6 |
+
<label for="billing:is_subscribed">
|
7 |
+
<?php echo Mage::helper('customer')->__('Sign Up for Newsletter') ?>
|
8 |
+
</label>
|
9 |
+
</li>
|
10 |
+
|
11 |
+
<script type="text/javascript">
|
12 |
+
//<![CDATA[
|
13 |
+
Element.show('register-customer-newsletter');
|
14 |
+
var hasRunHideCheckoutNewsletter = false;
|
15 |
+
jQuery(document).ready(function() {
|
16 |
+
// add fix so it only runs once, checks checkout-step-billing & hasRunHideCheckoutNewsletter
|
17 |
+
hideCheckoutNewsletter = function () {
|
18 |
+
if (jQuery('#checkout-step-billing').is(":visible") && !hasRunHideCheckoutNewsletter && typeof(checkout) != 'undefined'){
|
19 |
+
if (checkout.method == 'register'){
|
20 |
+
<?php if (!$helper->isCheckoutNewsletterVisibleRegister()): ?>
|
21 |
+
Element.hide('register-customer-newsletter');
|
22 |
+
$('billing:is_subscribed').checked = false;
|
23 |
+
<?php else: ?>
|
24 |
+
Element.show('register-customer-newsletter');
|
25 |
+
<?php if ($this->isChecked() || $helper->isCheckoutNewsletterChecked()): ?>
|
26 |
+
$('billing:is_subscribed').checked = true;
|
27 |
+
<?php endif ?>
|
28 |
+
<?php endif ?>
|
29 |
+
}
|
30 |
+
else if (checkout.method == 'guest'){
|
31 |
+
<?php if (!$helper->isCheckoutNewsletterVisibleGuest()): ?>
|
32 |
+
Element.hide('register-customer-newsletter');
|
33 |
+
$('billing:is_subscribed').checked = false;
|
34 |
+
<?php else: ?>
|
35 |
+
Element.show('register-customer-newsletter');
|
36 |
+
<?php if ($this->isChecked() || $helper->isCheckoutNewsletterChecked()): ?>
|
37 |
+
$('billing:is_subscribed').checked = true;
|
38 |
+
<?php endif ?>
|
39 |
+
<?php endif ?>
|
40 |
+
}
|
41 |
+
hasRunHideCheckoutNewsletter = true;
|
42 |
+
}
|
43 |
+
}
|
44 |
+
setInterval("hideCheckoutNewsletter()", 100);
|
45 |
+
});
|
46 |
+
//]]>
|
47 |
+
</script>
|
48 |
+
<?php endif ?>
|
package.xml
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>DigitalPianism_CampaignMonitor</name>
|
4 |
-
<version>0.7.
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
|
7 |
<channel>community</channel>
|
@@ -12,11 +12,13 @@
|
|
12 |
<p>Campaign Monitor is built for designers who can create great looking emails for themselves and their clients, but need software to send each campaign, track the results and manage their subscribers." www.campaignmonitor.com</p>
|
13 |

|
14 |
<p>This extension integrates Magento with the Campaign Monitor mailing list manager. Users are added to a specified Campaign Monitor email list when they subscribe to the newsletter in Magento, and removed when they unsubscribe. Users are also marked as unsubscribed in Magento when they click an unsubscribe link in a Campaign Monitor email.</p></description>
|
15 |
-
<notes>-
|
|
|
|
|
16 |
<authors><author><name>Digital Pianism</name><user>digitalpianism</user><email>contact@digital-pianism.com</email></author></authors>
|
17 |
-
<date>2014-
|
18 |
-
<time>
|
19 |
-
<contents><target name="magecommunity"><dir name="DigitalPianism"><dir name="CampaignMonitor"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Form"><dir name="Field"><file name="Auth.php" hash="a95501d852759b07a4f5f5e24743a0e7"/><file name="Refreshtoken.php" hash="8053f23d810219471e581e071bef96c6"/></dir></dir><dir name="Source"><file name="Authtype.php" hash="087491d524ceb6c74470673fca8e612d"/></dir></dir></dir></dir><file name="Linkedattributes.php" hash="3c5d00f9352fa53fbd36243c0d87db6e"/></dir><dir name="Helper"><file name="Data.php" hash="dacf12b145ebc49e06249155c35de7b8"/></dir><dir name="Model"><file name="Auth.php" hash="5f21e27b1b71d778ff49e3e46ab95bd5"/><dir name="Customer"><file name="Observer.php" hash="2b6cb4bfdfb63b2e611d5dea60fa667b"/></dir><dir name="System"><dir name="Config"><dir name="Source"><file name="Authtype.php" hash="2bba7379821e48b18d78327d02868b54"/></dir></dir></dir></dir><dir name="controllers"><file name="AdminhookController.php" hash="0598814f0cd09e4fd200520c94f9bad6"/><dir name="Adminhtml"><file name="AuthController.php" hash="fa7a2bbd67293a8145da6acfef5b9ec4"/></dir><file name="AuthController.php" hash="10c1c99b9c4a36455eceddbecee68b26"/><file name="HookController.php" hash="4e93ea76a5eb65bfbc40ef073578f091"/><file name="UnsubscribeController.php" hash="10fab41617bfd1430c426cf3458739cd"/></dir><dir name="etc"><file name="config.xml" hash="b2a657d00d53ac458bf18696731a9d96"/><file name="system.xml" hash="d3b61d1e71d59de1aa1aa9afe41744a4"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="DigitalPianism_CampaignMonitor.xml" hash="6044d29d2b2e7d0689315376e3c27acd"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="digitalpianism"><dir name="campaignmonitor"><dir name="system"><dir name="config"><dir name="form"><dir name="field"><file name="array_dropdown.phtml" hash="ac84db9b1e8b342337a478ecba62e0b1"/><file name="auth.phtml" hash="ec611006cadbb39caff40e5115b78586"/><file name="refreshtoken.phtml" hash="1d43c3e66c3c89a1d857b328eae6997f"/></dir></dir></dir></dir></dir></dir></dir></dir></dir></dir></target><target name="mage"><dir name="lib"><dir name="createsend"><file name="HISTORY.md" hash="ab283bd0126e8c10edf6da099c80a661"/><file name="LICENSE" hash="e4306d4b6c77f2db816ec4aed73a13c7"/><file name="README.md" hash="90a7855700d85e14211baf5399810a3d"/><file name="RELEASE.md" hash="5efce8234607beab27bf466b23fc4535"/><dir name="class"><file name="base_classes.php" hash="8a3f82c1204d7de080d2f3d15cb70ea9"/><file name="cacert.pem" hash="c29d362201b1bd232898d2b658811db2"/><file name="log.php" hash="11ff6a9006a6386c1cd8880cd3c0f41b"/><file name="serialisation.php" hash="3eb39437970e8787f0ef9ac292b688e6"/><file name="services_json.php" hash="c9e9ef0d35d7d34f9d216344da27915d"/><file name="transport.php" hash="da2967846daf164a70e649c9f2ee0094"/></dir><file name="composer.json" hash="eccad7521596b5fe0d81af51ab2f16a1"/><file name="composer.lock" hash="e64bca0a5accd8086e4e49bf41aa8629"/><file name="csrest_administrators.php" hash="72480342a46e8d82fd44096b4818f090"/><file name="csrest_campaigns.php" hash="38e2c429abaaa4609d30f28622e5fc3f"/><file name="csrest_clients.php" hash="df11ce1c1fd5fd43980db42cb83a6fa3"/><file name="csrest_general.php" hash="b8d1de7d1e435231955cdf8bc0311632"/><file name="csrest_lists.php" hash="42904680a424977d7c6f3211cf0d7a9c"/><file name="csrest_people.php" hash="ff2a14af7e171a11d73bef3d4995f512"/><file name="csrest_segments.php" hash="bac0e031058e7e08ae97906738cc65fc"/><file name="csrest_subscribers.php" hash="b5ad794e2cc2f65a278a8aa9de4af7d7"/><file name="csrest_templates.php" hash="4c94511a505a868eef2f8109ca3c35d6"/><dir name="samples"><dir name="campaign"><file name="create.php" hash="af4016e1b3539b3710d4b8e05bc7001b"/><file name="create_from_template.php" hash="4868b7f363abebc3d9fe9f561e59a743"/><file name="delete.php" hash="b96c2421084e77c241ea270894719aff"/><file name="get_bounces.php" hash="3bd2b2faa8d4b99bf7b9d682ce7402d3"/><file name="get_clicks.php" hash="92209680bdd73ecf3f94ecd1c33374ce"/><file name="get_email_client_usage.php" hash="fcf3a316f03460f26b6f12bcb20c17b0"/><file name="get_lists_and_segments.php" hash="e7d07e56924abfbd2d390b468d2df14b"/><file name="get_opens.php" hash="e155bf6a72a26fd34997d9024bd9911c"/><file name="get_recipients.php" hash="488f76fba7f7e2dc0680abefe5fe1fb5"/><file name="get_spam.php" hash="35c0beea84a51e3e447546f6b11ba754"/><file name="get_summary.php" hash="85ee04ac9adc616aa41d5a02824e6f7c"/><file name="get_unsubscribes.php" hash="af39956e9f46d9ecd1e78fff830f87b0"/><file name="send.php" hash="9e33ed7bd15e246929f52847f93827ce"/><file name="send_preview.php" hash="4eb7bff25251b00915791b96b20ee2ab"/><file name="unschedule.php" hash="83f0374d69eee6ae284c7fe27fdb65d7"/></dir><dir name="client"><file name="create.php" hash="8fbadcd57df2246a8447d3a3b9843d64"/><file name="delete.php" hash="a7a9945427a64737981c4a3a5c047d97"/><file name="get.php" hash="0b53f225d317d3d97bb0f3bafe83cf53"/><file name="get_campaigns.php" hash="242ed8ed7338a502751ead210283cb04"/><file name="get_drafts.php" hash="2efeea55251ec1e7e7c7767820dd28f1"/><file name="get_lists.php" hash="97ffa5cd9ccc765ae79baff0f50ece64"/><file name="get_lists_for_email.php" hash="a402b11a7b93dc6992dc69998a0ebf80"/><file name="get_scheduled.php" hash="163d89985d5fdc29d9f3a5d50787fd81"/><file name="get_segments.php" hash="9acd7c148db84fd03d825a6eaebd0b88"/><file name="get_suppressionlist.php" hash="2ae6c31510338b307f93d49369c964d1"/><file name="get_templates.php" hash="756789c223be6664b3517b79063f5143"/><file name="set_basics.php" hash="839bc9f656d26caf7335b2a4f4336ae8"/><file name="set_monthly_billing.php" hash="7f4ff840e6fe78932f9bc72e68c282da"/><file name="set_payg_billing.php" hash="2f67604445e8807a70a9e28759f3bb55"/><file name="suppress.php" hash="f78f0ddb442c9dfc53865c00ee57d266"/><file name="transfer_credits.php" hash="3fe8a12cef59a2d126d8ed7437563ec8"/><file name="unsuppress.php" hash="3442665090da89c2f5d91f6b69c18ade"/></dir><file name="get_apikey.php" hash="36f399338a612b2771ed3c53058d1d6f"/><file name="get_billing_details.php" hash="bfe297ec441b25eaa6155e283b4c0bf7"/><file name="get_clients.php" hash="521e3174750e8c41236c1c4fae5ae8f4"/><file name="get_countries.php" hash="6a71a585ef76eedec4589ecc303415f5"/><file name="get_systemdate.php" hash="7b5eeae853d164667140fb3c99a5b8ff"/><file name="get_timezones.php" hash="f756ab9b392af894320defe0f7f7296d"/><dir name="list"><file name="activate_webhook.php" hash="ca496e62c78429fa745f624738b80ce7"/><file name="create.php" hash="16a635a4de9ec820b08a7f30319534bd"/><file name="create_custom_field.php" hash="59ad0fe4d6b2038ceeda7681e4515dd0"/><file name="create_webhook.php" hash="d968c28b19521f6d3c5e6852c5c13806"/><file name="deactivate_webhook.php" hash="68478920fca13c0c1f98a450be8cb3c2"/><file name="delete.php" hash="12f035403835a63c7a0c1ba4704b3e46"/><file name="delete_custom_field.php" hash="f5031a6eac6ba776b54ac22a79c023b5"/><file name="delete_webhook.php" hash="080320b7e078ce0e33586e4c6a944172"/><file name="get.php" hash="25dcb3de68cd41792ec88d7d937217e8"/><file name="get_active_subscribers.php" hash="afcee93bc1b922a99c9e19f48894417b"/><file name="get_bounced_subscribers.php" hash="2fa45e557cca0d93924a6415fbc302d5"/><file name="get_custom_fields.php" hash="ddcaf8ee644474bb77d597894f8e501e"/><file name="get_deleted_subscribers.php" hash="400adee5529e1e0f16ff7b64b09e8bca"/><file name="get_segments.php" hash="1ddba11f0968d2d7e7109e14140e7663"/><file name="get_stats.php" hash="74ab2cf477a5049505f1959c3e9e272c"/><file name="get_unconfirmed_subscribers.php" hash="e6062d83308ccc7648d8c17200d5f277"/><file name="get_unsubscribed_subscribers.php" hash="366d5bbd88a4028b664be59420a1a0aa"/><file name="get_webhooks.php" hash="bbcb6401f2a1d3268f25405b3cbe4598"/><file name="list_webhook_receiver.php" hash="12ca45146c050f341423f80acbe688aa"/><file name="test_webhook.php" hash="22bf2bdf4c277bc86300d43018e4926e"/><file name="update.php" hash="acb1f015b02b9d66da6d286843def237"/><file name="update_custom_field.php" hash="8b5f33bc803fa29fb0a44847a0d399ec"/><file name="update_field_options.php" hash="809ed63991f1e799ee2c2b70f3c692f4"/></dir><dir name="segment"><file name="add_rule.php" hash="3ed9335f70c354cf068a176eb6dd8f6f"/><file name="clear_rules.php" hash="da68802f93c3c25a60fcf1a2b7603273"/><file name="create.php" hash="4f12c0099e9edc42ab55acfd80239ecd"/><file name="delete.php" hash="9079d2812da34ce862f9543513eb7efc"/><file name="get.php" hash="f4e65cd88d02dc5fa0c2d9d7d1a444e6"/><file name="get_subscribers.php" hash="a580a7c33025bd516cae2e8b87cc10dd"/><file name="update.php" hash="cb37cd60257eb361f80f69dfa830ab94"/></dir><dir name="subscriber"><file name="add.php" hash="f266ce4459f71665e29d25bb5181ba76"/><file name="delete.php" hash="08325db91e593b855749bc5d9381f5e3"/><file name="get.php" hash="e4d4cda7ed515df7ab7e81c72906601d"/><file name="get_history.php" hash="445b5dfc75fec5433986655437f5f608"/><file name="import.php" hash="119de43ee1e4b31ce2b710ad4507a25f"/><file name="unsubscribe.php" hash="7896a14a7bbb69a8b4d1db9ead52053f"/><file name="update.php" hash="4a62f2b72d31cb168258738483366707"/></dir><dir name="template"><file name="create.php" hash="0ed844ae8d5fc1025902a7fcfb8a949b"/><file name="delete.php" hash="ddd8cbab53644e863d5f0d4807e03719"/><file name="get.php" hash="3d5147086b92c85e7b0289ba065f9434"/><file name="update.php" hash="0854c3686f1339434cb6fb12897f801f"/></dir></dir><dir name="tests"><file name="all_tests.php" hash="3fafbd947aa885d9056ed62e832ca61b"/><dir name="class_tests"><file name="response_tests.php" hash="ae5b4f541ac5bcba7a9417544d2156a9"/><file name="transport_test.php" hash="3033343417f283136c43d0bab77ac355"/></dir><file name="csrest_administrators_test.php" hash="77830067da14a226bfdc86b445f68f30"/><file name="csrest_campaigns_test.php" hash="ce68576c81c314dbdeba2b229903d865"/><file name="csrest_clients_test.php" hash="d3023b37bc3ebf222171606a100532d5"/><file name="csrest_lists_test.php" hash="533753c96477cad7598382c94e9a8937"/><file name="csrest_people_test.php" hash="72269f3d21caaf5648684da44b0ad319"/><file name="csrest_segments_test.php" hash="33f275bcab02eacb32299d6fc63e1b7c"/><file name="csrest_subscribers_test.php" hash="8b6ec2dade2d5b59d8f27f7e32df049f"/><file name="csrest_template_test.php" hash="3645fc50d5e43da11fa1a2b496b692c4"/><file name="csrest_test.php" hash="de298e06f8b584018f8e6b1d14000f32"/><dir name="responses"><file name="active_subscribers.json" hash="414033ce6952d88c0edd3c7b04d4f14e"/><file name="add_subscriber.json" hash="236507977b97832343c87955243068ad"/><file name="apikey.json" hash="4ca4132cc99f80bfc3d4a029a77a7a6e"/><file name="bounced_subscribers.json" hash="78c52687485c30c0fb031eb82e472fb3"/><file name="campaign_bounces.json" hash="55471525555dacee6ca1eb9ed5826cea"/><file name="campaign_clicks.json" hash="57d3357f4a0d8b55042a80e6d984e1ea"/><file name="campaign_listsandsegments.json" hash="a0d21dda2042a25b1266036b5d945f0c"/><file name="campaign_opens.json" hash="50c3052eebc922dfd0293498b5374ef0"/><file name="campaign_recipients.json" hash="be59c57f1f497669260f5124c13d109e"/><file name="campaign_spam.json" hash="48fa85397d6d8da1a685a94c404d14a9"/><file name="campaign_summary.json" hash="248d074230990e424dedb26afac895eb"/><file name="campaign_unsubscribes.json" hash="87d6b967ec28f8b3cd7845acc3ba0a16"/><file name="campaigns.json" hash="3b160d6e1a5de3e6163f2fffa502e4cb"/><file name="client_details.json" hash="964787a45923035cdd7330d4af13dfd9"/><file name="clients.json" hash="b243ae5d2f1b0686a6f45bbc262b1ad5"/><file name="countries.json" hash="7baa975380541216a7829128d4d7fb5b"/><file name="create_campaign.json" hash="61079127bd26d95434347f30803a85b2"/><file name="create_client.json" hash="0b5ea68aeecf1f61c8a00fb5d2b89104"/><file name="create_custom_field.json" hash="49b9878fd944fa8ea2f283a3d0b6576b"/><file name="create_list.json" hash="33b7d284c287fa44edb649234bc2ac6b"/><file name="create_list_webhook.json" hash="8a1c9ea0268a3a58d8f8fdaa4f159519"/><file name="create_segment.json" hash="6183146c3898ae281ea640e40fb5b3b0"/><file name="create_template.json" hash="9b1fcc1ae0925bd552cb23e364d48cca"/><file name="custom_api_error.json" hash="6be6c0df48a411fc54a5abf1d8502690"/><file name="custom_fields.json" hash="fe40aa43df15068516cdc6b7d9e2148c"/><file name="deleted_subscribers.json" hash="176235e9b24405ed329cc40a9ac5d1cd"/><file name="drafts.json" hash="8b36d3bf66ebb683b6926fcef95ae106"/><file name="import_subscribers.json" hash="3c7c7d85d510224197dc597d3a6cf585"/><file name="import_subscribers_partial_success.json" hash="4e1ff5c7b33a77d709530a31f544a22d"/><file name="list_details.json" hash="09d06afb7cd013e74fe615ddfd5a6799"/><file name="list_stats.json" hash="b8cd04e30e5e30862f005208997655de"/><file name="list_webhooks.json" hash="93194d66734e07372cac1b5c9c04f2b5"/><file name="lists.json" hash="0b7f8013e3e93a105a7a7d8c156daf4d"/><file name="listsforemail.json" hash="c7eb2e23b02883e0a0f9a9b2ca9bc94a"/><file name="scheduled.json" hash="d7c9df96fbfa5bafb1e1cfc0643123b7"/><file name="segment_details.json" hash="9ec00f104a565fc723270e3ceb91d509"/><file name="segment_subscribers.json" hash="cf5cec4bc4e7970315ea929a0bd29ecd"/><file name="segments.json" hash="d2d9265fd87ed661cd65c9c96b31a2f0"/><file name="subscriber_details.json" hash="1c5733a762560ed1dc27449edea3c27f"/><file name="subscriber_history.json" hash="93d3efaa0f0373156146e9f3060ca855"/><file name="suppressionlist.json" hash="13fff3aeddf64804cf8d9232b79ab45b"/><file name="systemdate.json" hash="5f2f368919effd4c7d36bc11d42d8198"/><file name="template_details.json" hash="81fa02e23c0a9c00c55730956a2868b0"/><file name="templates.json" hash="64aca93871da82620071a26c818da4ce"/><file name="timezones.json" hash="ff9bbd7171fe05f5bace2fc8087953d0"/><file name="unsubscribed_subscribers.json" hash="0f7cec268e4241426a5c7dcc33ba99eb"/></dir></dir><file name=".gitignore" hash="1416491a3a84679680a343e7adf1f20d"/><file name=".travis.yml" hash="3f3c6ec40583a10d8ec8dfa89a2010e8"/></dir></dir></target></contents>
|
20 |
<compatible/>
|
21 |
<dependencies><required><php><min>4.1.0</min><max>6.0.0</max></php></required></dependencies>
|
22 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>DigitalPianism_CampaignMonitor</name>
|
4 |
+
<version>0.7.5</version>
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
|
7 |
<channel>community</channel>
|
12 |
<p>Campaign Monitor is built for designers who can create great looking emails for themselves and their clients, but need software to send each campaign, track the results and manage their subscribers." www.campaignmonitor.com</p>
|
13 |

|
14 |
<p>This extension integrates Magento with the Campaign Monitor mailing list manager. Users are added to a specified Campaign Monitor email list when they subscribe to the newsletter in Magento, and removed when they unsubscribe. Users are also marked as unsubscribed in Magento when they click an unsubscribe link in a Campaign Monitor email.</p></description>
|
15 |
+
<notes>- Fix bugs with the unsubscribe controller
|
16 |
+
- Fix bug with the backend mass unsubscribe controller
|
17 |
+
- Next release will include a subscribe on checkout feature.</notes>
|
18 |
<authors><author><name>Digital Pianism</name><user>digitalpianism</user><email>contact@digital-pianism.com</email></author></authors>
|
19 |
+
<date>2014-10-23</date>
|
20 |
+
<time>10:34:30</time>
|
21 |
+
<contents><target name="magecommunity"><dir name="DigitalPianism"><dir name="CampaignMonitor"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Form"><dir name="Field"><file name="Auth.php" hash="a95501d852759b07a4f5f5e24743a0e7"/><file name="Refreshtoken.php" hash="8053f23d810219471e581e071bef96c6"/></dir></dir><dir name="Source"><file name="Authtype.php" hash="087491d524ceb6c74470673fca8e612d"/></dir></dir></dir></dir><file name="Linkedattributes.php" hash="3c5d00f9352fa53fbd36243c0d87db6e"/></dir><dir name="Helper"><file name="Data.php" hash="4dd651073df9534bb4a094021d515def"/></dir><dir name="Model"><file name="Auth.php" hash="5f21e27b1b71d778ff49e3e46ab95bd5"/><dir name="Checkout"><file name="Observer.php" hash="4b76c6b2431baed187095b7a1b0e608f"/><dir name="Type"><file name="Onepage.php" hash="32cdc82ead13d07a1d23121b5f0dd995"/></dir></dir><dir name="Customer"><file name="Observer.php" hash="2b6cb4bfdfb63b2e611d5dea60fa667b"/></dir><dir name="System"><dir name="Config"><dir name="Source"><file name="Authtype.php" hash="2bba7379821e48b18d78327d02868b54"/></dir></dir></dir></dir><dir name="controllers"><file name="AdminhookController.php" hash="0598814f0cd09e4fd200520c94f9bad6"/><dir name="Adminhtml"><file name="AuthController.php" hash="fa7a2bbd67293a8145da6acfef5b9ec4"/></dir><file name="AuthController.php" hash="10c1c99b9c4a36455eceddbecee68b26"/><file name="HookController.php" hash="4e93ea76a5eb65bfbc40ef073578f091"/><dir name="Newsletter"><file name="SubscriberController.php" hash="6498dc9c8608370d0ed4103d8067d173"/></dir><file name="UnsubscribeController.php" hash="3060b2242988d3bfbb799d46cb9501c2"/></dir><dir name="etc"><file name="config.xml" hash="4547ae30686b8164e025c845bd34d80a"/><file name="system.xml" hash="bf9b3e5c5f5c622ca69db63664b2bb77"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="DigitalPianism_CampaignMonitor.xml" hash="6044d29d2b2e7d0689315376e3c27acd"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="digitalpianism"><dir name="campaignmonitor"><dir name="system"><dir name="config"><dir name="form"><dir name="field"><file name="array_dropdown.phtml" hash="ac84db9b1e8b342337a478ecba62e0b1"/><file name="auth.phtml" hash="ec611006cadbb39caff40e5115b78586"/><file name="refreshtoken.phtml" hash="1d43c3e66c3c89a1d857b328eae6997f"/></dir></dir></dir></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><dir name="digitalpianism"><file name="campaignmonitor.xml" hash="d01714d890051c5d01c82ad9624fcba6"/></dir></dir><dir name="template"><dir name="digitalpianism"><dir name="campaignmonitor"><dir name="persistent"><dir name="checkout"><file name="billing.phtml" hash="64b8515cd7eab3136d64ec5a0f2328d2"/><dir name="onepage"><file name="checkoutnewsletter.phtml" hash="ae24dcbc1ee1bcc353533f5ea7c7d572"/></dir></dir></dir></dir></dir></dir></dir></dir></dir></target><target name="mage"><dir name="lib"><dir name="createsend"><file name="HISTORY.md" hash="ab283bd0126e8c10edf6da099c80a661"/><file name="LICENSE" hash="e4306d4b6c77f2db816ec4aed73a13c7"/><file name="README.md" hash="90a7855700d85e14211baf5399810a3d"/><file name="RELEASE.md" hash="5efce8234607beab27bf466b23fc4535"/><dir name="class"><file name="base_classes.php" hash="8a3f82c1204d7de080d2f3d15cb70ea9"/><file name="cacert.pem" hash="c29d362201b1bd232898d2b658811db2"/><file name="log.php" hash="11ff6a9006a6386c1cd8880cd3c0f41b"/><file name="serialisation.php" hash="3eb39437970e8787f0ef9ac292b688e6"/><file name="services_json.php" hash="c9e9ef0d35d7d34f9d216344da27915d"/><file name="transport.php" hash="da2967846daf164a70e649c9f2ee0094"/></dir><file name="composer.json" hash="eccad7521596b5fe0d81af51ab2f16a1"/><file name="composer.lock" hash="e64bca0a5accd8086e4e49bf41aa8629"/><file name="csrest_administrators.php" hash="72480342a46e8d82fd44096b4818f090"/><file name="csrest_campaigns.php" hash="38e2c429abaaa4609d30f28622e5fc3f"/><file name="csrest_clients.php" hash="df11ce1c1fd5fd43980db42cb83a6fa3"/><file name="csrest_general.php" hash="b8d1de7d1e435231955cdf8bc0311632"/><file name="csrest_lists.php" hash="42904680a424977d7c6f3211cf0d7a9c"/><file name="csrest_people.php" hash="ff2a14af7e171a11d73bef3d4995f512"/><file name="csrest_segments.php" hash="bac0e031058e7e08ae97906738cc65fc"/><file name="csrest_subscribers.php" hash="b5ad794e2cc2f65a278a8aa9de4af7d7"/><file name="csrest_templates.php" hash="4c94511a505a868eef2f8109ca3c35d6"/><dir name="samples"><dir name="campaign"><file name="create.php" hash="af4016e1b3539b3710d4b8e05bc7001b"/><file name="create_from_template.php" hash="4868b7f363abebc3d9fe9f561e59a743"/><file name="delete.php" hash="b96c2421084e77c241ea270894719aff"/><file name="get_bounces.php" hash="3bd2b2faa8d4b99bf7b9d682ce7402d3"/><file name="get_clicks.php" hash="92209680bdd73ecf3f94ecd1c33374ce"/><file name="get_email_client_usage.php" hash="fcf3a316f03460f26b6f12bcb20c17b0"/><file name="get_lists_and_segments.php" hash="e7d07e56924abfbd2d390b468d2df14b"/><file name="get_opens.php" hash="e155bf6a72a26fd34997d9024bd9911c"/><file name="get_recipients.php" hash="488f76fba7f7e2dc0680abefe5fe1fb5"/><file name="get_spam.php" hash="35c0beea84a51e3e447546f6b11ba754"/><file name="get_summary.php" hash="85ee04ac9adc616aa41d5a02824e6f7c"/><file name="get_unsubscribes.php" hash="af39956e9f46d9ecd1e78fff830f87b0"/><file name="send.php" hash="9e33ed7bd15e246929f52847f93827ce"/><file name="send_preview.php" hash="4eb7bff25251b00915791b96b20ee2ab"/><file name="unschedule.php" hash="83f0374d69eee6ae284c7fe27fdb65d7"/></dir><dir name="client"><file name="create.php" hash="8fbadcd57df2246a8447d3a3b9843d64"/><file name="delete.php" hash="a7a9945427a64737981c4a3a5c047d97"/><file name="get.php" hash="0b53f225d317d3d97bb0f3bafe83cf53"/><file name="get_campaigns.php" hash="242ed8ed7338a502751ead210283cb04"/><file name="get_drafts.php" hash="2efeea55251ec1e7e7c7767820dd28f1"/><file name="get_lists.php" hash="97ffa5cd9ccc765ae79baff0f50ece64"/><file name="get_lists_for_email.php" hash="a402b11a7b93dc6992dc69998a0ebf80"/><file name="get_scheduled.php" hash="163d89985d5fdc29d9f3a5d50787fd81"/><file name="get_segments.php" hash="9acd7c148db84fd03d825a6eaebd0b88"/><file name="get_suppressionlist.php" hash="2ae6c31510338b307f93d49369c964d1"/><file name="get_templates.php" hash="756789c223be6664b3517b79063f5143"/><file name="set_basics.php" hash="839bc9f656d26caf7335b2a4f4336ae8"/><file name="set_monthly_billing.php" hash="7f4ff840e6fe78932f9bc72e68c282da"/><file name="set_payg_billing.php" hash="2f67604445e8807a70a9e28759f3bb55"/><file name="suppress.php" hash="f78f0ddb442c9dfc53865c00ee57d266"/><file name="transfer_credits.php" hash="3fe8a12cef59a2d126d8ed7437563ec8"/><file name="unsuppress.php" hash="3442665090da89c2f5d91f6b69c18ade"/></dir><file name="get_apikey.php" hash="36f399338a612b2771ed3c53058d1d6f"/><file name="get_billing_details.php" hash="bfe297ec441b25eaa6155e283b4c0bf7"/><file name="get_clients.php" hash="521e3174750e8c41236c1c4fae5ae8f4"/><file name="get_countries.php" hash="6a71a585ef76eedec4589ecc303415f5"/><file name="get_systemdate.php" hash="7b5eeae853d164667140fb3c99a5b8ff"/><file name="get_timezones.php" hash="f756ab9b392af894320defe0f7f7296d"/><dir name="list"><file name="activate_webhook.php" hash="ca496e62c78429fa745f624738b80ce7"/><file name="create.php" hash="16a635a4de9ec820b08a7f30319534bd"/><file name="create_custom_field.php" hash="59ad0fe4d6b2038ceeda7681e4515dd0"/><file name="create_webhook.php" hash="d968c28b19521f6d3c5e6852c5c13806"/><file name="deactivate_webhook.php" hash="68478920fca13c0c1f98a450be8cb3c2"/><file name="delete.php" hash="12f035403835a63c7a0c1ba4704b3e46"/><file name="delete_custom_field.php" hash="f5031a6eac6ba776b54ac22a79c023b5"/><file name="delete_webhook.php" hash="080320b7e078ce0e33586e4c6a944172"/><file name="get.php" hash="25dcb3de68cd41792ec88d7d937217e8"/><file name="get_active_subscribers.php" hash="afcee93bc1b922a99c9e19f48894417b"/><file name="get_bounced_subscribers.php" hash="2fa45e557cca0d93924a6415fbc302d5"/><file name="get_custom_fields.php" hash="ddcaf8ee644474bb77d597894f8e501e"/><file name="get_deleted_subscribers.php" hash="400adee5529e1e0f16ff7b64b09e8bca"/><file name="get_segments.php" hash="1ddba11f0968d2d7e7109e14140e7663"/><file name="get_stats.php" hash="74ab2cf477a5049505f1959c3e9e272c"/><file name="get_unconfirmed_subscribers.php" hash="e6062d83308ccc7648d8c17200d5f277"/><file name="get_unsubscribed_subscribers.php" hash="366d5bbd88a4028b664be59420a1a0aa"/><file name="get_webhooks.php" hash="bbcb6401f2a1d3268f25405b3cbe4598"/><file name="list_webhook_receiver.php" hash="12ca45146c050f341423f80acbe688aa"/><file name="test_webhook.php" hash="22bf2bdf4c277bc86300d43018e4926e"/><file name="update.php" hash="acb1f015b02b9d66da6d286843def237"/><file name="update_custom_field.php" hash="8b5f33bc803fa29fb0a44847a0d399ec"/><file name="update_field_options.php" hash="809ed63991f1e799ee2c2b70f3c692f4"/></dir><dir name="segment"><file name="add_rule.php" hash="3ed9335f70c354cf068a176eb6dd8f6f"/><file name="clear_rules.php" hash="da68802f93c3c25a60fcf1a2b7603273"/><file name="create.php" hash="4f12c0099e9edc42ab55acfd80239ecd"/><file name="delete.php" hash="9079d2812da34ce862f9543513eb7efc"/><file name="get.php" hash="f4e65cd88d02dc5fa0c2d9d7d1a444e6"/><file name="get_subscribers.php" hash="a580a7c33025bd516cae2e8b87cc10dd"/><file name="update.php" hash="cb37cd60257eb361f80f69dfa830ab94"/></dir><dir name="subscriber"><file name="add.php" hash="f266ce4459f71665e29d25bb5181ba76"/><file name="delete.php" hash="08325db91e593b855749bc5d9381f5e3"/><file name="get.php" hash="e4d4cda7ed515df7ab7e81c72906601d"/><file name="get_history.php" hash="445b5dfc75fec5433986655437f5f608"/><file name="import.php" hash="119de43ee1e4b31ce2b710ad4507a25f"/><file name="unsubscribe.php" hash="7896a14a7bbb69a8b4d1db9ead52053f"/><file name="update.php" hash="4a62f2b72d31cb168258738483366707"/></dir><dir name="template"><file name="create.php" hash="0ed844ae8d5fc1025902a7fcfb8a949b"/><file name="delete.php" hash="ddd8cbab53644e863d5f0d4807e03719"/><file name="get.php" hash="3d5147086b92c85e7b0289ba065f9434"/><file name="update.php" hash="0854c3686f1339434cb6fb12897f801f"/></dir></dir><dir name="tests"><file name="all_tests.php" hash="3fafbd947aa885d9056ed62e832ca61b"/><dir name="class_tests"><file name="response_tests.php" hash="ae5b4f541ac5bcba7a9417544d2156a9"/><file name="transport_test.php" hash="3033343417f283136c43d0bab77ac355"/></dir><file name="csrest_administrators_test.php" hash="77830067da14a226bfdc86b445f68f30"/><file name="csrest_campaigns_test.php" hash="ce68576c81c314dbdeba2b229903d865"/><file name="csrest_clients_test.php" hash="d3023b37bc3ebf222171606a100532d5"/><file name="csrest_lists_test.php" hash="533753c96477cad7598382c94e9a8937"/><file name="csrest_people_test.php" hash="72269f3d21caaf5648684da44b0ad319"/><file name="csrest_segments_test.php" hash="33f275bcab02eacb32299d6fc63e1b7c"/><file name="csrest_subscribers_test.php" hash="8b6ec2dade2d5b59d8f27f7e32df049f"/><file name="csrest_template_test.php" hash="3645fc50d5e43da11fa1a2b496b692c4"/><file name="csrest_test.php" hash="de298e06f8b584018f8e6b1d14000f32"/><dir name="responses"><file name="active_subscribers.json" hash="414033ce6952d88c0edd3c7b04d4f14e"/><file name="add_subscriber.json" hash="236507977b97832343c87955243068ad"/><file name="apikey.json" hash="4ca4132cc99f80bfc3d4a029a77a7a6e"/><file name="bounced_subscribers.json" hash="78c52687485c30c0fb031eb82e472fb3"/><file name="campaign_bounces.json" hash="55471525555dacee6ca1eb9ed5826cea"/><file name="campaign_clicks.json" hash="57d3357f4a0d8b55042a80e6d984e1ea"/><file name="campaign_listsandsegments.json" hash="a0d21dda2042a25b1266036b5d945f0c"/><file name="campaign_opens.json" hash="50c3052eebc922dfd0293498b5374ef0"/><file name="campaign_recipients.json" hash="be59c57f1f497669260f5124c13d109e"/><file name="campaign_spam.json" hash="48fa85397d6d8da1a685a94c404d14a9"/><file name="campaign_summary.json" hash="248d074230990e424dedb26afac895eb"/><file name="campaign_unsubscribes.json" hash="87d6b967ec28f8b3cd7845acc3ba0a16"/><file name="campaigns.json" hash="3b160d6e1a5de3e6163f2fffa502e4cb"/><file name="client_details.json" hash="964787a45923035cdd7330d4af13dfd9"/><file name="clients.json" hash="b243ae5d2f1b0686a6f45bbc262b1ad5"/><file name="countries.json" hash="7baa975380541216a7829128d4d7fb5b"/><file name="create_campaign.json" hash="61079127bd26d95434347f30803a85b2"/><file name="create_client.json" hash="0b5ea68aeecf1f61c8a00fb5d2b89104"/><file name="create_custom_field.json" hash="49b9878fd944fa8ea2f283a3d0b6576b"/><file name="create_list.json" hash="33b7d284c287fa44edb649234bc2ac6b"/><file name="create_list_webhook.json" hash="8a1c9ea0268a3a58d8f8fdaa4f159519"/><file name="create_segment.json" hash="6183146c3898ae281ea640e40fb5b3b0"/><file name="create_template.json" hash="9b1fcc1ae0925bd552cb23e364d48cca"/><file name="custom_api_error.json" hash="6be6c0df48a411fc54a5abf1d8502690"/><file name="custom_fields.json" hash="fe40aa43df15068516cdc6b7d9e2148c"/><file name="deleted_subscribers.json" hash="176235e9b24405ed329cc40a9ac5d1cd"/><file name="drafts.json" hash="8b36d3bf66ebb683b6926fcef95ae106"/><file name="import_subscribers.json" hash="3c7c7d85d510224197dc597d3a6cf585"/><file name="import_subscribers_partial_success.json" hash="4e1ff5c7b33a77d709530a31f544a22d"/><file name="list_details.json" hash="09d06afb7cd013e74fe615ddfd5a6799"/><file name="list_stats.json" hash="b8cd04e30e5e30862f005208997655de"/><file name="list_webhooks.json" hash="93194d66734e07372cac1b5c9c04f2b5"/><file name="lists.json" hash="0b7f8013e3e93a105a7a7d8c156daf4d"/><file name="listsforemail.json" hash="c7eb2e23b02883e0a0f9a9b2ca9bc94a"/><file name="scheduled.json" hash="d7c9df96fbfa5bafb1e1cfc0643123b7"/><file name="segment_details.json" hash="9ec00f104a565fc723270e3ceb91d509"/><file name="segment_subscribers.json" hash="cf5cec4bc4e7970315ea929a0bd29ecd"/><file name="segments.json" hash="d2d9265fd87ed661cd65c9c96b31a2f0"/><file name="subscriber_details.json" hash="1c5733a762560ed1dc27449edea3c27f"/><file name="subscriber_history.json" hash="93d3efaa0f0373156146e9f3060ca855"/><file name="suppressionlist.json" hash="13fff3aeddf64804cf8d9232b79ab45b"/><file name="systemdate.json" hash="5f2f368919effd4c7d36bc11d42d8198"/><file name="template_details.json" hash="81fa02e23c0a9c00c55730956a2868b0"/><file name="templates.json" hash="64aca93871da82620071a26c818da4ce"/><file name="timezones.json" hash="ff9bbd7171fe05f5bace2fc8087953d0"/><file name="unsubscribed_subscribers.json" hash="0f7cec268e4241426a5c7dcc33ba99eb"/></dir></dir><file name=".gitignore" hash="1416491a3a84679680a343e7adf1f20d"/><file name=".travis.yml" hash="3f3c6ec40583a10d8ec8dfa89a2010e8"/></dir></dir></target></contents>
|
22 |
<compatible/>
|
23 |
<dependencies><required><php><min>4.1.0</min><max>6.0.0</max></php></required></dependencies>
|
24 |
</package>
|