/** * @param string $text * @param string $macros * @param JBCartOrder $order * @return mixed * @throws Exception */ private function _replaceMacros($text, $macros, JBCartOrder $order = null) { if ($macros == 'date') { $date = new JDate(); $replace = $date->format(JText::_('DATE_FORMAT_LC3')); } else { if ($macros == 'time') { $date = new JDate(); $replace = $date->format('H:i'); } else { if ($macros == 'datetime') { $date = new JDate(); $replace = $date->format('Y-m-d H:m'); } else { if ($macros == 'order_id' && $order) { $replace = $order->getName('short'); } else { if ($macros == 'order_name' && $order) { $replace = $order->getName('full'); } else { if ($macros == 'order_status' && $order) { $replace = $order->getStatus()->getName(); } else { if ($macros == 'order_total' && $order) { $replace = $order->getTotalSum()->text(); } else { if ($macros == 'order_payment_name' && $order) { $replace = JText::_('JBZOO_UNDEFINED'); if ($payment = $order->getPayment()) { $replace = $payment->getName(); } } else { if ($macros == 'order_payment_stat' && $order) { $replace = $order->getPaymentStatus()->getName(); } else { if ($macros == 'order_shipping_name' && $order) { $replace = JText::_('JBZOO_UNDEFINED'); if ($shipping = $order->getShipping()) { $replace = $shipping->getName(); } } else { if ($macros == 'order_shipping_stat' && $order) { $replace = $order->getShippingStatus()->getName(); } else { if ($macros == 'user_id') { $replace = (int) JFactory::getUser()->id; } else { if ($macros == 'user_name') { $juser = JFactory::getUser(); $replace = $juser->id > 0 ? $juser->get('name') : JText::_('JBZOO_UNDEFINED'); } else { if ($macros == 'order_created_id') { $replace = $order->created_by; } else { if ($macros == 'order_created_name') { $juser = JFactory::getUser($order->created_by); $replace = $juser->id > 0 ? $juser->name : JText::_('JBZOO_UNDEFINED'); } else { if ($macros == 'site_name') { $replace = JFactory::getConfig()->get('sitename', ''); } else { if ($macros == 'site_desc') { $replace = JFactory::getConfig()->get('MetaDesc', ''); } else { if ($macros == 'site_url') { $replace = JUri::root(); } else { if ($macros == 'site_link') { $sitename = JString::trim(JFactory::getConfig()->get('sitename')); $replace = '<a href="' . JUri::root() . '" target="_blank">' . $sitename . '</a>'; } else { if ($macros == 'shop_name') { $replace = JBModelConfig::model()->get('shop_name', '', 'cart.config'); } else { if ($macros == 'shop_desc') { $replace = JBModelConfig::model()->get('shop_details', '', 'cart.config'); } else { if ($macros == 'shop_country') { $replace = JBModelConfig::model()->get('default_shipping_country', '', 'cart.config'); } else { if ($macros == 'shop_city') { $replace = JBModelConfig::model()->get('default_shipping_city', '', 'cart.config'); } else { if ($macros == 'shop_address') { $replace = JBModelConfig::model()->get('default_shipping_address', '', 'cart.config'); } else { if ($macros == 'shop_zip') { $replace = JBModelConfig::model()->get('default_shipping_zip', '', 'cart.config'); } else { throw new Exception('Undefined email macros: "{' . $macros . '}"'); } } } } } } } } } } } } } } } } } } } } } } } } } if (isset($replace)) { $replace = JString::trim($replace); $macros = preg_quote('{' . trim($macros) . '}'); $text = preg_replace('#' . $macros . '#ius', $replace, $text); } return $text; }