發佈日期:
分類:
如何在PrestaShop中.將訂閱(subscribe)及取消訂閱(unsubscribe)通訊(newsletter)功能‧與MailChimp結合
PrestaShop本身已有自己的訂閱及取消訂閱通訊的模組。而經此模組訂閱之後,用戶可在其個人資料選項中作更改。考慮到實際使用情況下,決定只針對模組作更改,不容許在個人資料中的選項作更改。
01. 編輯PrestaShop安裝目錄下,位於/modules/blocknewsletter/blocknewsletter.php檔案,找尋function hookLeftColumn($params)。假設PrestaShop安裝在/var/www位置。
sudo gedit /var/www/modules/blocknewsletter/blocknewsletter.php
將: $smarty->assign('this_path', $this->_path); return $this->display(__FILE__, 'blocknewsletter.tpl'); 更改為: $smarty->assign('this_path', $this->_path); if ($this->valid == 'Subscription successful') { include 'mcapi_listSubscribe.php'; Tools::redirect('index.php?reg=subscribe'); } if ($this->valid == 'Unsubscription successful') { include 'mcapi_listUnsubscribe.php'; Tools::redirect('index.php?reg=unsubscribe'); } return $this->display(__FILE__, 'blocknewsletter.tpl');
02. 在PrestaShop安裝目錄下,位於/modules/blocknewsletter資料夾位置,建立新檔案mcapi_listSubscribe.php,並接上以下內容。
sudo gedit /var/www/modules/blocknewsletter/mcapi_listSubscribe.php
<?php require_once 'inc/MCAPI.class.php'; require_once 'inc/config.inc.php'; //contains apikey $api = new MCAPI($apikey); $retval = $api->listSubscribe($listId, $_POST['email'], ''); ?>
03. 在PrestaShop安裝目錄下,位於/modules/blocknewsletter資料夾位置,建立新檔案mcapi_listUnsubscribe.php,並接上以下內容。
sudo gedit /var/www/modules/blocknewsletter/mcapi_listUnsubscribe.php
<?php require_once 'inc/MCAPI.class.php'; require_once 'inc/config.inc.php'; //contains apikey $api = new MCAPI($apikey); $retval = $api->listUnsubscribe($listId,$_POST['email']); ?>
04. 在MailChimp網站,下載API程式(mailchimp-api-class.zip)。
05. 將API程式中inc資料夾,抄到PrestaShop目錄下/modules/blocknewsletter資料夾位置。
sudo cp -R inc /var/www/modules/blocknewsletter
06. 編輯/modules/blocknewsletter/inc資料夾下的config.inc檔案。根據您MailChimp設定資料,設定$apikey及$listId。
sudo gedit /var/www/modules/blocknewsletter/inc/config.inc
07. 再次編輯PrestaShop安裝目錄下,位於/modules/blocknewsletter/blocknewsletter.php檔案。
sudo gedit /var/www/modules/blocknewsletter/blocknewsletter.php
將: <?php 更改為: <?php if ($_GET["reg"] == 'subscribe') { echo '<table width="100%"><tr><td bgcolor="#197a19" align="center"><font color="#ffffff" size="2">'; echo 'Subscribe successful.'; echo '</font></td></tr></table>'; } if ($_GET["reg"] == 'unsubscribe') { echo '<table width="100%"><tr><td bgcolor="#197a19" align="center"><font color="#ffffff" size="2">'; echo 'Unsubscribe successful.'; echo '</font></td></tr></table>'; }
08. 編輯PrestaShop安裝目錄下,位於themes/prestashop/authentication.tpl檔案。
將: <p class="checkbox" > <input type="checkbox" name="newsletter" id="newsletter" value="1" {if isset($smarty.post.newsletter) AND $smarty.post.newsletter == 1} checked="checked"{/if} /> <label for="newsletter">{l s='Sign up for our newsletter'}</label> </p> 更改為: <!-- <p class="checkbox" > <input type="checkbox" name="newsletter" id="newsletter" value="1" {if isset($smarty.post.newsletter) AND $smarty.post.newsletter == 1} checked="checked"{/if} /> <label for="newsletter">{l s='Sign up for our newsletter'}</label> </p> -->
09. 編輯PrestaShop安裝目錄下,位於themes/prestashop/identity.tpl檔案。
將: <p class="checkbox"> <input type="checkbox" id="newsletter" name="newsletter" value="1" {if $smarty.post.newsletter == 1} checked="checked"{/if} /> <label for="newsletter">{l s='Sign up for our newsletter'}</label> </p> 更改為: <!-- <p class="checkbox"> <input type="checkbox" id="newsletter" name="newsletter" value="1" {if $smarty.post.newsletter == 1} checked="checked"{/if} /> <label for="newsletter">{l s='Sign up for our newsletter'}</label> </p> -->
發佈留言