2015年3月5日 星期四

修改 OpenCart 1.5.6 的「發送電郵」Bug...


弟弟今日找我求助,事緣是他為自己的玩具售賣網站買入了「Newsletter Enhancements v3.7.2」模組在安裝後出現問題。我花了兩個小時也無法修正它的問題,需要電郵給開發公司尋求解決方法。弟弟會買 Newsletter Enhancements v3.7.2 是因為 OpenCart 的內建「發送電郵」有 Bug,填好所有資料後無法送出電郵,更指沒有輸入內文。於是我幫忙看一下。很快發現是 Javascript 的邏輯出現問題。明明內容是在 CKEditor 中輸入,檢查卻以一個隱藏了的 Textarea 內文為準,那當然會沒有內容!於是我把它的代碼修正後,便能正常發送電郵。

發生問題的檔案位於 /admin/view/template/sale/contact.tpl。在第 243 行作以下修改:
function send(url) { 
 //  This is original program bug
// $('textarea[name=\'message\']').html($('textarea[name=\'message\']').val());

 //  Fixed by Pacess at 2015-Mar-05
 var message = '';
 for (instance in CKEDITOR.instances) {
  message = CKEDITOR.instances[instance].getData();
 }
 $('textarea[name=\'message\']').html(message);

沒有留言: