/** * Return company data * @param int $company_id * @return array */ protected function getCompany($company_id) { if (!isset(static::$companies[$company_id])) { static::$companies[$company_id] = fn_get_company_placement_info($company_id); } return static::$companies[$company_id]; }
function fn_rma_print_packing_slips($return_ids, $auth, $area = AREA) { $view = Registry::get('view'); $passed = false; if (!is_array($return_ids)) { $return_ids = array($return_ids); } $view->assign('reasons', fn_get_rma_properties(RMA_REASON)); $view->assign('actions', fn_get_rma_properties(RMA_ACTION)); $view->assign('order_status_descr', fn_get_simple_statuses(STATUSES_RETURN)); foreach ($return_ids as $return_id) { $return_info = fn_get_return_info($return_id); if (empty($return_info) || $area == 'C' && $return_info['user_id'] != $auth['user_id']) { continue; } $order_info = fn_get_order_info($return_info['order_id']); if (empty($order_info)) { continue; } $passed = true; $view->assign('return_info', $return_info); $view->assign('order_info', $order_info); $view->assign('company_data', fn_get_company_placement_info($order_info['company_id'])); $view->displayMail('addons/rma/print_slip.tpl', true, $area, $order_info['company_id']); if ($return_id != end($return_ids)) { echo "<div style='page-break-before: always;'> </div>"; } } return $passed; }
} } if (!empty($products)) { Registry::get('view')->assign('products', $products); $products_block = Registry::get('view')->fetch('addons/orders_feedback/components/products.tpl'); } else { $products_block = ''; } $letter['body'] = str_replace("%" . __("products_block") . "%", $products_block, $letter['body']); $letter['body'] = str_replace("%" . __("feedback_customer_firstname") . "%", $order_info['firstname'], $letter['body']); $letter['subject'] = str_replace("%" . __("feedback_customer_firstname") . "%", $order_info['firstname'], $letter['subject']); $letter['body'] = str_replace("%" . __("feedback_customer_lastname") . "%", $order_info['lastname'], $letter['body']); $letter['subject'] = str_replace("%" . __("feedback_customer_lastname") . "%", $order_info['lastname'], $letter['subject']); $letter['body'] = str_replace("%" . __("feedback_order_id") . "%", __("order") . ' #' . $order_info['order_id'], $letter['body']); $letter['subject'] = str_replace("%" . __("feedback_order_id") . "%", __("order") . ' #' . $order_info['order_id'], $letter['subject']); $company_data = fn_get_company_placement_info($order_info['company_id'], $order_info['lang_code']); $letter['body'] = str_replace("%" . __("feedback_company_name") . "%", $company_data['company_name'], $letter['body']); $letter['subject'] = str_replace("%" . __("feedback_company_name") . "%", $company_data['company_name'], $letter['subject']); $letter['body'] = str_replace("%" . __("feedback_company_phone") . "%", $company_data['company_phone'], $letter['body']); $letter['subject'] = str_replace("%" . __("feedback_company_phone") . "%", $company_data['company_phone'], $letter['subject']); $address = $company_data['company_address']; if (!empty($company_data['company_city'])) { $address .= ' ' . $company_data['company_city']; } if (!empty($company_data['company_state_descr'])) { $address .= ', ' . $company_data['company_state_descr']; } if (!empty($company_data['company_zipcode'])) { $address .= ', ' . $company_data['company_zipcode']; } if (!empty($company_data['company_country_descr'])) {
private function _getBaseItemData($product, $template, $images_data) { $currency = CART_PRIMARY_CURRENCY; $shippings = $this->prepareShipping($product, $template); $company = fn_get_company_placement_info(Registry::get('runtime.company_id')); $price = fn_format_price($product['price']); $picture_details = ''; if ($product['override'] == "Y") { $title = substr(strip_tags($product['ebay_title']), 0, 80); $description = !empty($product['ebay_description']) ? $product['ebay_description'] : $product['full_description']; } else { $title = substr(strip_tags($product['product']), 0, 80); $description = $product['full_description']; } $payments = '<PaymentMethods>' . implode("</PaymentMethods>\n<PaymentMethods>", $template['payment_methods']) . '</PaymentMethods>'; if (in_array('PayPal', $template['payment_methods'])) { $payments .= "\n<PayPalEmailAddress>{$template['paypal_email']}</PayPalEmailAddress>"; } if (!empty($product['main_pair']) && !empty($product['main_pair']['detailed']) && !empty($product['main_pair']['detailed']['http_image_path']) && $images_data[md5($product['main_pair']['detailed']['http_image_path'])]) { $image_url = $images_data[md5($product['main_pair']['detailed']['http_image_path'])]; $picture_details .= "<PictureURL>{$image_url}</PictureURL>\n"; } if ($product['image_pairs']) { foreach ($product['image_pairs'] as $image_pair) { if (!empty($images_data[md5($image_pair['detailed']['http_image_path'])])) { $image_url = $images_data[md5($image_pair['detailed']['http_image_path'])]; $picture_details .= "<PictureURL>{$image_url}</PictureURL>\n"; } } } $picture_details = empty($picture_details) ? '' : "<PictureDetails>\n{$picture_details}</PictureDetails>"; $product_features = ''; if (!empty($product['product_features'])) { $product_features = '<ItemSpecifics>' . fn_prepare_xml_product_features($product['product_features']) . '</ItemSpecifics>'; } $product_options = ''; $start_price = ''; $product_quantity = ''; $inventory_combinations = db_get_array("SELECT combination FROM ?:product_options_inventory WHERE product_id = ?i AND amount > 0 AND combination != ''", $product['product_id']); if (!empty($product['product_options']) && !empty($inventory_combinations)) { $params = array('page' => 1, 'product_id' => $product['product_id']); $product_options = '<Variations>' . fn_prepare_xml_product_options($params, $product, $images_data) . '</Variations>'; } if (empty($product_options)) { $start_price = '<StartPrice currencyID="' . $currency . '">' . $price . '</StartPrice>'; $product_quantity = '<Quantity>' . $product['amount'] . '</Quantity>'; } $location = fn_get_country_name($company['company_country']); $xml = <<<EOT <ItemID>{$product['ebay_item_id']}</ItemID> <Site>{$template['site']}</Site> <ListingType>FixedPriceItem</ListingType> <Currency>{$currency}</Currency> <PrimaryCategory> <CategoryID>{$template['category']}</CategoryID> </PrimaryCategory> <SecondaryCategory> <CategoryID>{$template['sec_category']}</CategoryID> </SecondaryCategory> <ConditionID>{$template['condition_id']}</ConditionID> <CategoryMappingAllowed>true</CategoryMappingAllowed> <Country>{$company['company_country']}</Country> <PostalCode>{$company['company_zipcode']}</PostalCode> <Location>{$location}</Location> <Title><![CDATA[{$title}]]></Title> <Description><![CDATA[{$description}]]></Description> {$payments} <ListingDuration>{$template['ebay_duration']}</ListingDuration> <DispatchTimeMax>{$template['dispatch_days']}</DispatchTimeMax> {$shippings} {$picture_details} {$product_features} {$product_options} {$start_price} {$product_quantity} EOT; return $xml; }
public static function sendMail($params, $area = AREA, $lang_code = CART_LANGUAGE) { if (empty($params['to']) || empty($params['from']) || empty($params['tpl']) && empty($params['body'])) { return false; } fn_disable_live_editor_mode(); $from = array('email' => '', 'name' => ''); $to = array(); $reply_to = array(); $cc = array(); $mailer = self::instance(!empty($params['mailer_settings']) ? $params['mailer_settings'] : array()); fn_set_hook('send_mail_pre', $mailer, $params, $area, $lang_code); $mailer->ClearReplyTos(); $mailer->ClearCCs(); $mailer->ClearAttachments(); $mailer->Sender = ''; $params['company_id'] = !empty($params['company_id']) ? $params['company_id'] : 0; $company_data = fn_get_company_placement_info($params['company_id'], $lang_code); foreach (array('reply_to', 'to', 'cc') as $way) { if (!empty($params[$way])) { if (!is_array($params[$way])) { ${$way}[] = !empty($company_data[$params[$way]]) ? $company_data[$params[$way]] : $params[$way]; } else { foreach ($params[$way] as $way_ar) { ${$way}[] = !empty($company_data[$way_ar]) ? $company_data[$way_ar] : $way_ar; } } } } if (!empty($reply_to)) { $reply_to = $mailer->formatEmails($reply_to); foreach ($reply_to as $rep_to) { $mailer->AddReplyTo($rep_to); } } if (!empty($cc)) { $cc = $mailer->formatEmails($cc); foreach ($cc as $c) { $mailer->AddCC($c); } } if (!is_array($params['from'])) { if (!empty($company_data[$params['from']])) { $from['email'] = $company_data[$params['from']]; $from['name'] = strstr($params['from'], 'default_') ? $company_data['default_company_name'] : $company_data['company_name']; } elseif (self::ValidateAddress($params['from'])) { $from['email'] = $params['from']; } } else { if (!empty($params['from']['email'])) { if (!empty($company_data[$params['from']['email']])) { $from['email'] = $company_data[$params['from']['email']]; if (empty($params['from']['name'])) { $params['from']['name'] = strstr($params['from']['email'], 'default_') ? $company_data['default_company_name'] : $company_data['company_name']; } } else { $from['email'] = $params['from']['email']; } $from['name'] = !empty($company_data[$params['from']['name']]) ? $company_data[$params['from']['name']] : $params['from']['name']; } } if (empty($to) || empty($from['email'])) { return false; } $mailer->SetFrom($from['email'], $from['name']); $mailer->IsHTML(isset($params['is_html']) ? $params['is_html'] : true); $mailer->CharSet = CHARSET; // Pass data to template foreach ($params['data'] as $k => $v) { Registry::get('view')->assign($k, $v); } Registry::get('view')->assign('company_data', $company_data); $company_id = isset($params['company_id']) ? $params['company_id'] : null; if (!empty($params['tpl'])) { // Get template name for subject and render it $tpl_ext = fn_get_file_ext($params['tpl']); $subj_tpl = str_replace('.' . $tpl_ext, '_subj.' . $tpl_ext, $params['tpl']); $subject = Registry::get('view')->displayMail($subj_tpl, false, $area, $company_id, $lang_code); // Render template for body $body = Registry::get('view')->displayMail($params['tpl'], false, $area, $company_id, $lang_code); } else { $subject = $params['subj']; $body = $params['body']; } $mailer->Body = $mailer->attachImages($body); $mailer->Subject = trim($subject); if (!empty($params['attachments'])) { foreach ($params['attachments'] as $name => $file) { $mailer->AddAttachment($file, $name); } } $to = $mailer->formatEmails($to); foreach ($to as $v) { $mailer->ClearAddresses(); $mailer->AddAddress($v, ''); $result = $mailer->Send(); if (!$result) { fn_set_notification('E', __('error'), __('error_message_not_sent') . ' ' . $mailer->ErrorInfo); } fn_set_hook('send_mail', $mailer); } return $result; }
function fn_print_order_invoices($order_ids, $pdf = false, $area = AREA, $lang_code = CART_LANGUAGE) { $view = Registry::get('view'); $html = array(); $view->assign('order_status_descr', fn_get_simple_statuses(STATUSES_ORDER, true, true)); $view->assign('profile_fields', fn_get_profile_fields('I')); if (!is_array($order_ids)) { $order_ids = array($order_ids); } foreach ($order_ids as $order_id) { $order_info = fn_get_order_info($order_id, false, true, false, true); if (empty($order_info)) { continue; } if (fn_allowed_for('MULTIVENDOR')) { $view->assign('take_surcharge_from_vendor', fn_take_payment_surcharge_from_vendor($order_info['products'])); } list($shipments) = fn_get_shipments_info(array('order_id' => $order_info['order_id'], 'advanced_info' => true)); $use_shipments = !fn_one_full_shipped($shipments); $view->assign('order_info', $order_info); $view->assign('shipments', $shipments); $view->assign('use_shipments', $use_shipments); $view->assign('payment_method', fn_get_payment_data(!empty($order_info['payment_method']['payment_id']) ? $order_info['payment_method']['payment_id'] : 0, $order_info['order_id'], $lang_code)); $view->assign('order_status', fn_get_status_data($order_info['status'], STATUSES_ORDER, $order_info['order_id'], $lang_code, $order_info['company_id'])); $view->assign('status_settings', fn_get_status_params($order_info['status'])); $view->assign('company_data', fn_get_company_placement_info($order_info['company_id'], $lang_code)); if ($pdf == true) { fn_disable_live_editor_mode(); $html[] = $view->displayMail('orders/print_invoice.tpl', false, $area, $order_info['company_id'], $lang_code); } else { $view->displayMail('orders/print_invoice.tpl', true, $area, $order_info['company_id'], $lang_code); if ($order_id != end($order_ids)) { echo "<div style='page-break-before: always;'> </div>"; } } } if ($pdf == true) { Pdf::render($html, __('invoices') . '-' . implode('-', $order_ids)); } return true; }
$url_params = json_encode($url_params); $url_params = base64_encode($url_params); $url = fn_url('abandoned_cart_reminder.cart?hash=' . urlencode($url_params), 'C', 'http'); $url = '<a href="' . $url . '">' . __("view_cart") . '</a>'; $text_header = str_replace("%cart_link%", $url, $text_header); $subject = str_replace("%customer_firstname%", $user_data['firstname'], $subject); $text_header = str_replace("%customer_firstname%", $user_data['firstname'], $text_header); foreach ($products as &$product) { $product['short_description'] = db_get_field('SELECT short_description FROM ?:product_descriptions WHERE product_id = ?i AND lang_code = ?s', $product['product_id'], $recipient_data['lang_code']); } Registry::get('view')->assign('products', $products); $products_block = Registry::get('view')->fetch('addons/abandoned_cart_reminder/components/products.tpl'); $text_header = str_replace("%products_block%", $products_block, $text_header); $subject = str_replace("%customer_lastname%", $user_data['lastname'], $subject); $text_header = str_replace("%customer_lastname%", $user_data['lastname'], $text_header); $company_data = fn_get_company_placement_info($company_id, $recipient_data['lang_code']); $subject = str_replace("%company_name%", $company_data['company_name'], $subject); $text_header = str_replace("%company_name%", $company_data['company_name'], $text_header); $text_header = str_replace("%company_phone%", $company_data['company_phone'], $text_header); $address = $company_data['company_address']; if (!empty($company_data['company_city'])) { $address .= ' ' . $company_data['company_city']; } if (!empty($company_data['company_state_descr'])) { $address .= ', ' . $company_data['company_state_descr']; } if (!empty($company_data['company_zipcode'])) { $address .= ', ' . $company_data['company_zipcode']; } if (!empty($company_data['company_country_descr'])) { $address .= ', ' . $company_data['company_country_descr'];
$url = '<a href="' . $url . '">' . __("view_cart") . '</a>'; $text_header = str_replace("%cart_link%", $url, $text_header); $subject = str_replace("%customer_firstname%", $user_data['firstname'], $subject); $text_header = str_replace("%customer_firstname%", $user_data['firstname'], $text_header); $user_products = db_get_array('SELECT * FROM ?:user_session_products WHERE user_id=?i AND user_type=?s AND type=?s', $_REQUEST['customer_id'], 'R', 'C'); if (!empty($user_products)) { foreach ($user_products as $product) { $_products_list[] = unserialize($product['extra']); } } Registry::get('view')->assign('products', $_products_list); $products_block = Registry::get('view')->fetch('addons/abandoned_cart_reminder/components/products.tpl'); $text_header = str_replace("%products_block%", $products_block, $text_header); $subject = str_replace("%customer_lastname%", $user_data['lastname'], $subject); $text_header = str_replace("%customer_lastname%", $user_data['lastname'], $text_header); $company_data = fn_get_company_placement_info($company_id, $lang_code); $subject = str_replace("%company_name%", $company_data['company_name'], $subject); $text_header = str_replace("%company_name%", $company_data['company_name'], $text_header); $text_header = str_replace("%company_phone%", $company_data['company_phone'], $text_header); $address = $company_data['company_address']; if (!empty($company_data['company_city'])) { $address .= ' ' . $company_data['company_city']; } if (!empty($company_data['company_state_descr'])) { $address .= ', ' . $company_data['company_state_descr']; } if (!empty($company_data['company_zipcode'])) { $address .= ', ' . $company_data['company_zipcode']; } if (!empty($company_data['company_country_descr'])) { $address .= ', ' . $company_data['company_country_descr'];
function fn_qwintry_save_order_invoice($order_id, $area = AREA, $lang_code = CART_LANGUAGE) { $view = Tygh::$app['view']; $html = array(); $view->assign('order_status_descr', fn_get_simple_statuses(STATUSES_ORDER, true, true)); $view->assign('profile_fields', fn_get_profile_fields('I')); $order_info = fn_get_order_info($order_id, false, true, false, true); if (empty($order_info)) { return; } if (fn_allowed_for('MULTIVENDOR')) { $view->assign('take_surcharge_from_vendor', fn_take_payment_surcharge_from_vendor($order_info['products'])); } list($shipments) = fn_get_shipments_info(array('order_id' => $order_info['order_id'], 'advanced_info' => true)); $use_shipments = !fn_one_full_shipped($shipments); $view->assign('order_info', $order_info); $view->assign('shipments', $shipments); $view->assign('use_shipments', $use_shipments); $view->assign('payment_method', fn_get_payment_data(!empty($order_info['payment_method']['payment_id']) ? $order_info['payment_method']['payment_id'] : 0, $order_info['order_id'], $lang_code)); $view->assign('order_status', fn_get_status_data($order_info['status'], STATUSES_ORDER, $order_info['order_id'], $lang_code, $order_info['company_id'])); $view->assign('status_settings', fn_get_status_params($order_info['status'])); $view->assign('company_data', fn_get_company_placement_info($order_info['company_id'], $lang_code)); fn_disable_live_editor_mode(); $html[] = $view->displayMail('orders/print_invoice.tpl', false, $area, $order_info['company_id'], $lang_code); $filename = QWINTRY_DIR_INVOICES . $order_id . '.pdf'; if (Pdf::render($html, $filename, true)) { return $filename; } return false; }