Basic Cart Order + Mime Mail

Те кто ставили задачу отправлять HTML письма с Basic Cart, после оформления заказа сталкивались с той проблемой, что они всё равно как-то форматируются и обрезают часть тегов.

Эта проблема прячется в самом модуле Basic Cart Order (basic_cart_order.module):

/**
 * Implements hook_mail().
 */
function basic_cart_order_mail($key, &$message, $params) {
  switch ($key) {
    case 'admin_mail':
      $message['subject'] = t(check_plain(variable_get('basic_cart_admin_subject')));
      $message['body'][] = filter_xss($params['admin_message']);
      break;
 
    case 'user_mail':
      $message['subject'] = t(check_plain(variable_get('basic_cart_user_subject')));
      $message['body'][] = filter_xss($params['user_message']);
      break;
  }
}

Как видим тут используется filter_xss(), и в его стандартном списке разрешённых тегов нет вашего.

Три решения проблемы:

  1. Переопределить hook_mail в своём модуле, но чтобы модуль отрабатывал позже basic_cart_order()
  2. Переписать функцию basic_cart_order_send_notifications($order) в своём модуле и вызвать её в своём submit-е. Это если Вы переопределяете страницу оформления заказа.
  3. Исправить в самом модуле до первого обновления.