public static function getBasket(&$ref, $OPCloader, $withwrapper = true, &$op_coupon = '', $shipping = '', $payment = '', $isexpress = false) { include JPATH_ROOT . DS . 'components' . DS . 'com_onepage' . DS . 'config' . DS . 'onepage.cfg.php'; $has_k2 = OPCloader::tableExists('k2mart'); if (!class_exists('ShopFunctions')) { require JPATH_VM_ADMINISTRATOR . DS . 'helpers' . DS . 'shopfunctions.php'; } if (!method_exists('ShopFunctions', 'convertWeightUnit')) { $opc_show_weight = false; } /* if (!class_exists('VirtueMartModelProduct')) require(JPATH_VM_ADMINISTRATOR . DS . 'models' . DS . 'product.php'); */ require_once JPATH_ROOT . DS . 'components' . DS . 'com_onepage' . DS . 'helpers' . DS . 'mini.php'; $productClass = OPCmini::getModel('product'); //new VirtueMartModelProduct(); if (!class_exists('CurrencyDisplay')) { require JPATH_VM_ADMINISTRATOR . DS . 'helpers' . DS . 'currencydisplay.php'; } $currencyDisplay = CurrencyDisplay::getInstance($ref->cart->pricesCurrency); $google_html = ''; $VM_LANG = new op_languageHelper(); $product_rows = array(); $p2 = $ref->cart->products; if (empty($ref->cart)) { $ref->cart = VirtueMartCart::getCart(); } $vm2015 = false; $ref->cart->prices = $ref->cart->pricesUnformatted = OPCloader::getCheckoutPrices($ref->cart, false, $vm2015, 'opc'); $useSSL = VmConfig::get('useSSL', 0); $action_url = $OPCloader->getActionUrl($OPCloader, true); $xi = 0; if (isset($currencyDisplay->_priceConfig)) { $savedConfig = $currencyDisplay->_priceConfig; } if (empty($product_price_display)) { $product_price_display = 'salesPrice'; } //$test_product_price_display = array($product_price_display, 'salesPrice', 'basePrice', 'priceWithoutTax', 'basePriceWithTax', 'priceBeforeTax', 'costPrice'); $test_product_price_display = array($product_price_display, 'salesPrice', 'basePrice', 'priceWithoutTax', 'basePriceWithTax', 'priceBeforeTax'); // check price config $testf = false; foreach ($test_product_price_display as $product_price_display_test) { $test = $currencyDisplay->createPriceDiv($product_price_display, '', '10', false, false, 1); if (empty($test)) { if (isset($currencyDisplay->_priceConfig)) { if (isset($currencyDisplay->_priceConfig[$product_price_display_test])) { if (empty($currencyDisplay->_priceConfig[$product_price_display_test][0])) { $currencyDisplay->_priceConfig[$product_price_display_test] = array(1, -1, 1); } } } $testf = true; } else { if (!isset($product_price_display_test2)) { $product_price_display_test2 = $product_price_display_test; } } } if (empty($testf)) { $product_price_display = $product_price_display_test2; } $totalw = 0; $to_weight_unit = VmConfig::get('weight_unit_default', 'KG'); foreach ($ref->cart->products as $pkey => $prow) { if ($opc_show_weight) { $totalw += ShopFunctions::convertWeightUnit((double) $prow->product_weight, $prow->product_weight_uom, $to_weight_unit) * (double) $prow->quantity; } $product = array(); $id = $prow->virtuemart_media_id; if (empty($id)) { $imgf = ''; } else { if (is_array($id)) { $id = reset($id); } $imgf = $OPCloader->getImageFile($id); } $product['product_full_image'] = $imgf; if (!empty($opc_only_parent_links)) { if (!empty($prow->product_parent_id)) { $parent = $prow->product_parent_id; $prow->url = JRoute::_('index.php?option=com_virtuemart&virtuemart_product_id=' . $parent . '&view=productdetails', true); } } // check if k2 exists: if (!isset($prow->url)) { if (isset($prow->link)) { $prow->url = $prow->link; if (strpos($prow->url, '&') === false) { $prow->url = str_replace('&', '&', $prow->url); } } else { $prow->url = JRoute::_('index.php?option=com_virtuemart&virtuemart_product_id=' . $prow->virtuemart_product_id . '&view=productdetails', true); } } if ($has_k2) { $db = JFactory::getDBO(); $q = 'select baseID from #__k2mart where referenceID = ' . (int) $prow->virtuemart_product_id . ' limit 0,1'; $db->setQuery($q); $k2_id = $db->loadResult(); if (!empty($k2_id)) { $prow->url = JRoute::_('index.php?option=com_k2&id=' . $k2_id . '&view=item', true); } } $product['product_name'] = JHTML::link($prow->url, $prow->product_name, ' class="opc_product_name" '); if ((!defined('VM_VERSION') || VM_VERSION < 3) && (isset($prow->customfields) && !is_array($prow->customfields))) { if (!empty($opc_editable_attributes)) { $product['product_attributes'] = '<div style="clear:both;">' . OPCrenderer::getCustomFields($prow->virtuemart_product_id, $prow->cart_item_id, $prow->quantity) . '</div>'; } else { $product['product_attributes'] = $prow->customfields; } } else { $product['product_attributes'] = ''; } /* var_dump($prow->customfields); $cart = VirtuemartCart::getCart(); $p = array(); foreach ($cart->products as $k=>$v) { $p[$k] = $v; } unset($cart->products); unset($cart->ST); unset($cart->BT); unset($cart->BTaddress); unset($cart->STaddress); $cart->products = $p; $cart->setCartIntoSession(); var_dump($cart->products); die(); var_dump($cart); JFactory::getApplication()->close(); */ if (defined('VM_VERSION') && VM_VERSION >= 3) { } if (isset($prow->customfields) && is_array($prow->customfields)) { $customfieldsModel = OPCmini::getModel('Customfields'); $product['product_attributes'] = $customfieldsModel->CustomsFieldCartDisplay($prow); } $product['product_sku'] = $prow->product_sku; // end price test if (isset($prow->quantity)) { $product['product_quantity'] = $prow->quantity; } if (isset($prow->min_order_level)) { $product['min_order_level'] = $prow->min_order_level; } if (isset($prow->max_order_level)) { $product['max_order_level'] = $prow->max_order_level; } //$product_model = $OPCloader->getModel('product'); $xi++; if (empty($no_extra_product_info)) { $prowcopy = $productClass->getProduct($prow->virtuemart_product_id, true); } else { $prowcopy = $prow; } $product['info'] = $prowcopy; $product['product'] = $prow; if (isset($ref->cart->prices[$pkey])) { $currentPrice = $ref->cart->prices[$pkey]; } else { if (isset($prow->prices)) { $currentPrice = $prow->prices; } } if ($product_price_display == 'salesPrice') { if (isset($prow->prices)) { $product['product_price'] = $currentPrice['salesPrice']; } else { if (isset($prow->salesPrice)) { $product['product_price'] = $prow->salesPrice; } else { if (isset($prow->basePriceWithTax)) { $product['product_price'] = $prow->basePriceWithTax; } else { if (isset($prow->basePrice)) { $product['product_price'] = $prow->basePrice; } } } } } else { if (isset($prow->prices)) { $product['product_price'] = $currentPrice[$product_price_display]; } else { if (isset($prow->{$product_price_display})) { $product['product_price'] = $prow->{$product_price_display}; } else { if (isset($prow->salesPrice)) { $product['product_price'] = $prow->salesPrice; } } } } if (!isset($product['product_price'])) { $price = $ref->cart->pricesUnformatted[$pkey]; $product['product_price'] = $price[$product_price_display]; } if (empty($product['product_price'])) { $product_price_display = 'salesPrice'; $price = $ref->cart->pricesUnformatted[$pkey]; $product['product_price'] = $price['salesPrice']; } $price_raw = $product['product_price']; // the quantity is not working up to 2.0.4 $product['product_id'] = $prow->virtuemart_product_id; $google_html .= '<input type="hidden" name="prod_id" value="' . $prow->virtuemart_product_id . '" /> <input type="hidden" name="prodsku_' . $prow->virtuemart_product_id . '" id="prodsku_' . $prow->virtuemart_product_id . '" value="' . OPCloader::slash($prow->product_sku, false) . '" /> <input type="hidden" name="prodname_' . $prow->virtuemart_product_id . '" id="prodname_' . $prow->virtuemart_product_id . '" value="' . OPCloader::slash($prow->product_name, false) . '" /> <input type="hidden" name="prodq_' . $prow->virtuemart_product_id . '" id="prodq_' . $prow->virtuemart_product_id . '" value="' . $prow->quantity . '" /> <input type="hidden" name="produprice_' . $prow->virtuemart_product_id . '" id="produprice_' . $prow->virtuemart_product_id . '" value="' . $price_raw . '" /> <input type="hidden" name="prodcat_' . $prow->virtuemart_product_id . '" id="prodcat_' . $prow->virtuemart_product_id . '" value="' . $prow->category_name . '" /> '; if (isset($ref->cart->pricesUnformatted[$pkey])) { $price = $ref->cart->pricesUnformatted[$pkey]; } else { $price = $prow->prices; } $product['prices'] = $price; $product['prices_formatted'] = array(); if ($vm2015) { foreach ($price as $key => $pricev) { //if (!isset($price[$key])) if (!empty($pricev)) { $product['prices_formatted'][$key] = $currencyDisplay->createPriceDiv($key, '', $price, false, true, 1); } } } $product['product_price'] = $currencyDisplay->createPriceDiv($product_price_display, '', $price, false, true, 1); /* if (false) if (empty($product['product_price'])) { // ok, we have a wrong type selected here if ($product_price_display == 'salesPrice') $product['product_price'] = $currencyDisplay->createPriceDiv('basePrice','', $price,false,false, 1); if (empty($product['product_price'])) $product['product_price'] = $currencyDisplay->createPriceDiv('priceWithoutTax','', $price,false,false, 1); if (empty($product['product_price'])) $product['product_price'] = $currencyDisplay->createPriceDiv('basePriceWithTax','', $price,false,false, 1); if (empty($product['product_price'])) $product['product_price'] = $currencyDisplay->createPriceDiv('priceBeforeTax','', $price,false,false, 1); if (empty($product['product_price'])) $product['product_price'] = $currencyDisplay->createPriceDiv('costPrice','', $price,false,false, 1); } */ $product['product_price'] = str_replace('class="', 'class="opc_price_general opc_', $product['product_price']); if (!isset($prow->cart_item_id)) { $prow->cart_item_id = $pkey; } $v = array('product' => $prow, 'action_url' => $action_url, 'use_ssl' => $useSSL, 'useSSL' => $useSSL); if (!empty($ajaxify_cart)) { $update_form = $OPCloader->fetch($OPCloader, 'update_form_ajax.tpl', $v); $delete_form = $OPCloader->fetch($OPCloader, 'delete_form_ajax.tpl', $v); } else { $update_form = $OPCloader->fetch($OPCloader, 'update_form.tpl', $v); $delete_form = $OPCloader->fetch($OPCloader, 'delete_form.tpl', $v); $op_coupon_ajax = ''; } if (empty($update_form)) { if (!empty($ajaxify_cart)) { $product['update_form'] = '<input type="text" title="' . OPCLang::_('COM_VIRTUEMART_CART_UPDATE') . '" class="inputbox" size="3" name="quantity" id="quantity_for_' . md5($prow->cart_item_id) . '" value="' . $prow->quantity . '" /><a class="updatebtn" title="' . OPCLang::_('COM_VIRTUEMART_CART_DELETE') . '" href="#" rel="' . $prow->cart_item_id . '|' . md5($prow->cart_item_id) . '"> </a>'; $product['delete_form'] = '<a class="deletebtn" title="' . OPCLang::_('COM_VIRTUEMART_CART_DELETE') . '" href="#" rel="' . $prow->cart_item_id . '"> </a>'; } else { $product['update_form'] = '<form action="' . $action_url . '" method="post" style="display: inline;"> <input type="hidden" name="option" value="com_virtuemart" /> <input type="text" title="' . OPCLang::_('COM_VIRTUEMART_CART_UPDATE') . '" class="inputbox" size="3" name="quantity" value="' . $prow->quantity . '" /> <input type="hidden" name="view" value="cart" /> <input type="hidden" name="task" value="update" /> <input type="hidden" name="cart_virtuemart_product_id" value="' . $prow->cart_item_id . '" /> <input type="submit" class="updatebtn" name="update" title="' . OPCLang::_('COM_VIRTUEMART_CART_UPDATE') . '" value=" "/> </form>'; if (defined('VM_VERSION') && VM_VERSION >= 3) { $product['delete_form'] = '<a class="deletebtn" title="' . OPCLang::_('COM_VIRTUEMART_CART_DELETE') . '" href="' . JRoute::_('index.php?option=com_virtuemart&view=cart&task=delete.' . $prow->cart_item_id . '&cart_virtuemart_product_id=' . $prow->cart_item_id, true, $useSSL) . '"> </a>'; } else { $product['delete_form'] = '<a class="deletebtn" title="' . OPCLang::_('COM_VIRTUEMART_CART_DELETE') . '" href="' . JRoute::_('index.php?option=com_virtuemart&view=cart&task=delete&cart_virtuemart_product_id=' . $prow->cart_item_id, true, $useSSL) . '"> </a>'; } } } else { $product['update_form'] = $update_form; $product['delete_form'] = $delete_form; } if (!empty($ajaxify_cart)) { $product['update_form'] = str_replace('href=', 'onclick="return Onepage.updateProduct(this);" href=', $product['update_form']); $product['delete_form'] = str_replace('href=', 'onclick="return Onepage.deleteProduct(this);" href=', $product['delete_form']); } //vm3 update: if (defined('VM_VERSION') && VM_VERSION >= 3) { $product['update_form'] = str_replace('name="quantity"', 'name="quantity[' . $prow->cart_item_id . ']"', $product['update_form']); $product['update_form'] = str_replace('value="update"', 'value="updatecart"', $product['update_form']); } $product['subtotal'] = $prow->quantity * $price_raw; //else //$product['subtotal'] = $prow->subtotal_with_tax; // this is fixed from 2.0.4 and would not be needed if (isset($ref->cart->pricesUnformatted[$pkey])) { $copy = $ref->cart->pricesUnformatted[$pkey]; } else { $copy = $prow->prices; } //$copy['salesPrice'] = $copy['subtotal_with_tax']; $copy[$product_price_display] = $product['subtotal']; $product['subtotal'] = $currencyDisplay->createPriceDiv($product_price_display, '', $copy, false, true, 1); $product['subtotal'] = str_replace('class="', 'class="opc_', $product['subtotal']); // opc vars $product_rows[] = $product; //break; } //$shipping_inside_basket = false; $shipping_select = $shipping; $payment_select = $payment; if (!empty($ref->cart->prices['salesPriceCoupon'])) { if (empty($coupon_price_display)) { $coupon_price_display = 'salesPriceCoupon'; } $coupon_display = $currencyDisplay->createPriceDiv($coupon_price_display, '', $ref->cart->prices, false, true, 1); //$ref->cart->prices['salesPriceCoupon']; $coupon_display = str_replace('class="', 'class="opc_', $coupon_display); } else { $coupon_display = ''; } if (!empty($coupon_display)) { $discount_after = true; } else { $discount_after = false; } if (empty($other_discount_display)) { $other_discount_display = 'billDiscountAmount'; } switch ($other_discount_display) { case 'billDiscountAmount': $coupon_display_before = $currencyDisplay->createPriceDiv('billDiscountAmount', '', $ref->cart->prices, false, false, 1); if (empty($ref->cart->prices['billDiscountAmount'])) { $coupon_display_before = ''; } break; case 'discountAmount': $coupon_display_before = $currencyDisplay->createPriceDiv('discountAmount', '', $ref->cart->prices, false, false, 1); if (empty($ref->cart->prices['discountAmount'])) { $coupon_display_before = ''; } case 'minus': $billD = abs($ref->cart->prices['billDiscountAmount']); foreach ($ref->cart->prices as $key => $val) { if (!empty($ref->cart->products[$key])) { if (is_array($val)) { $billD -= abs($val['subtotal_discount']); } } } $billD = abs($billD) * -1; $prices_new['billTotal'] = $billD; if (!empty($billD)) { $coupon_display_before = $currencyDisplay->createPriceDiv('billTotal', '', $prices_new, false, false, 1); } else { $coupon_display_before = ''; } break; case 'sum': $billD = 0; foreach ($ref->cart->prices as $key => $val) { if (!empty($ref->cart->products[$key])) { if (is_array($val)) { $billD += $val['subtotal_discount']; } } } $billD = abs($billD) * -1; $prices_new['billTotal'] = $billD; if (!empty($billD)) { $coupon_display_before = $currencyDisplay->createPriceDiv('billTotal', '', $prices_new, false, false, 1); } else { $coupon_display_before = ''; } break; } $coupon_display_before = str_replace('class="', 'class="opc_', $coupon_display_before); //else $coupon_display_before = ''; $opc_show_weight_display = ''; if (!empty($opc_show_weight) && !empty($totalw)) { $dec = $currencyDisplay->getDecimalSymbol(); $th = $currencyDisplay->getThousandsSeperator(); $w = VmConfig::get('weight_unit_default', 'KG'); $w = strtoupper($w); if ($w == 'OZ') { $w = 'OUNCE'; } $unit = JText::_('COM_VIRTUEMART_UNIT_SYMBOL_' . $w); if ($unit == 'COM_VIRTUEMART_UNIT_SYMBOL_' . $w) { $unit = $w = VmConfig('weight_unit_default', 'kg'); } $opc_show_weight_display = number_format($totalw, 2, $dec, $th) . ' ' . $unit; } if (!empty($ajaxify_cart)) { $coupon_text = $ref->cart->couponCode ? OPCLang::_('COM_VIRTUEMART_COUPON_CODE_CHANGE') : OPCLang::_('COM_VIRTUEMART_COUPON_CODE_ENTER'); $vars = array('coupon_text' => $coupon_text, 'coupon_display' => $coupon_display); $op_coupon_ajax = $OPCloader->fetch($OPCloader, 'couponField_ajax', $vars); if (stripos($op_coupon_ajax, 'Onepage.setCouponAjax') === false) { $op_coupon_ajax = str_replace('type="button', 'onclick="return Onepage.setCouponAjax(this);" type="button', $op_coupon_ajax); } } if (empty($subtotal_price_display)) { $subtotal_price_display = 'salesPrice'; } if ($subtotal_price_display != 'diffTotals') { $subtotal_display = $currencyDisplay->createPriceDiv($subtotal_price_display, '', $ref->cart->prices, false, false, 1); if ($subtotal_price_display == 'basePriceWithTax') { if (stripos($subtotal_display, ' ></span') !== false) { $subtotal_price_display = 'salesPrice'; $subtotal_display = $currencyDisplay->createPriceDiv($subtotal_price_display, '', $ref->cart->prices, false, false, 1); } } } else { $subtotal = $ref->cart->prices['billTotal'] - $ref->cart->prices['billTaxAmount']; $arr = array('diffTotals' => $subtotal); $subtotal_display = $currencyDisplay->createPriceDiv($subtotal_price_display, '', $arr, false, false, 1); } //$ref->cart->prices['salesPrice']; $subtotal_display = str_replace('class="', 'class="opc_', $subtotal_display); $prices = $ref->cart->prices; if (!isset($prices[$subtotal_price_display . 'Shipment'])) { if ($subtotal_price_display != 'salesPrice') { $order_shipping = $prices['shipmentValue']; } else { $order_shipping = $prices['salesPriceShipment']; } } else { $order_shipping = $prices[$subtotal_price_display . 'Shipment']; } if (!empty($order_shipping)) { $virtuemart_currency_id = OPCloader::getCurrency($ref->cart); $order_shipping = $currencyDisplay->convertCurrencyTo($virtuemart_currency_id, $order_shipping, false); $test = $currencyDisplay->createPriceDiv($product_price_display, '', $order_shipping, false, true, 1); if (!empty($test)) { $order_shipping = $test; } $order_shipping = str_replace('class="', 'class="opc_', $order_shipping); } else { $order_shipping = ''; } $continue_link = $OPCloader->getContinueLink($ref); $order_total_display = $currencyDisplay->createPriceDiv('billTotal', '', $ref->cart->prices, false, false, 1); //$ref->cart->prices['billTotal']; $order_total_display = str_replace('class="', 'class="opc_', $order_total_display); // this will need a little tuning foreach ($ref->cart->cartData['taxRulesBill'] as $rule) { $rulename = $rule['calc_name']; if (!empty($ref->cart->prices[$rule['virtuemart_calc_id'] . 'Diff'])) { $tax_display = $currencyDisplay->createPriceDiv($rule['virtuemart_calc_id'] . 'Diff', '', $ref->cart->prices, false, false, 1); //$ref->cart->prices[$rule['virtuemart_calc_id'].'Diff']; $tax_display = str_replace('class="', 'class="opc_', $tax_display); } else { $tax_display = ''; } } $op_disable_shipping = OPCloader::getShippingEnabled($ref->cart); if (!empty($payment_discount_before) && !empty($coupon_display_before)) { $discount_before = true; } else { $discount_before = false; } $disable_couponns = VmConfig::get('coupons_enable', true); if (empty($disable_couponns)) { $op_coupon = $op_coupon_ajax = ''; } if (!empty($op_coupon_ajax)) { $op_coupon = $op_coupon_ajax; } if ($isexpress) { $payment_inside_basket = false; } if (empty($payment_inside_basket)) { $payment_select = ''; } if (empty($shipping_inside_basket)) { $shipping_select = ''; } if (empty($tax_display)) { $tax_display = ''; } if (empty($op_disable_shipping)) { $op_disable_shipping = false; } $no_shipping = $op_disable_shipping; $vars = array('product_rows' => $product_rows, 'payment_inside_basket' => $payment_inside_basket, 'shipping_select' => $shipping_select, 'payment_select' => $payment_select, 'shipping_inside_basket' => $shipping_inside_basket, 'coupon_display' => $coupon_display, 'subtotal_display' => $subtotal_display, 'no_shipping' => $no_shipping, 'order_total_display' => $order_total_display, 'tax_display' => $tax_display, 'VM_LANG' => $VM_LANG, 'op_coupon_ajax' => $op_coupon_ajax, 'continue_link' => $continue_link, 'coupon_display_before' => $coupon_display_before, 'discount_before' => $discount_before, 'discount_after' => $discount_after, 'order_shipping' => $order_shipping, 'cart' => $ref->cart, 'op_coupon' => $op_coupon, 'opc_show_weight_display' => $opc_show_weight_display); //original cart support: $ref->cart->cartData['shipmentName'] = ''; $ref->cart->cartData['paymentName'] = ''; $totalInPaymentCurrency = $ref->getTotalInPaymentCurrency(); $cd = CurrencyDisplay::getInstance($ref->cart->pricesCurrency); $layoutName = 'default'; $confirm = 'confirm'; $shippingText = ''; $paymentText = ''; $checkout_link_html = ''; $useSSL = VmConfig::get('useSSL', 0); $useXHTML = true; $checkoutAdvertise = ''; if (!class_exists('OPCrenderer')) { require JPATH_SITE . DS . 'components' . DS . 'com_onepage' . DS . 'helpers' . DS . 'renderer.php'; } $renderer = OPCrenderer::getInstance(); if (method_exists($renderer, 'assignRef')) { $renderer->assignRef('cart', $renderer->cart); $renderer->assignRef('totalInPaymentCurrency', $totalInPaymentCurrency); $renderer->assignRef('layoutName', $layoutName); $renderer->assignRef('select_shipment_text', $shippingText); $renderer->assignRef('checkout_task', $confirm); $renderer->assignRef('currencyDisplay', $cd); $renderer->assignRef('select_payment_text', $paymentText); $renderer->assignRef('checkout_link_html', $checkout_link_html); $renderer->assignRef('useSSL', $useSSL); $renderer->assignRef('useXHTML', $useXHTML); $renderer->assignRef('totalInPaymentCurrency', $totalInPaymentCurrency); $renderer->assignRef('checkoutAdvertise', $checkoutAdvertise); } if (empty($use_original_basket)) { $html = $renderer->fetch($OPCloader, 'basket.html', $vars); } else { $html = $renderer->fetchBasket($OPCloader, 'basket.html', $vars); } if ($withwrapper) { $html = '<div id="opc_basket">' . $html . '</div>'; } if (!empty($op_no_basket)) { $html = '<div style="display: none;">' . $html . '</div>'; } if (isset($currencyDisplay->_priceConfig)) { $currencyDisplay->_priceConfig = $savedConfig; } $ret = $html . $google_html; return $ret; }
function getShipping(&$ref, &$cart, $ajax = false) { if (empty($cart)) { if (!empty($ref->cart)) { $cart =& $ref->cart; } else { $cart = VirtueMartCart::getCart(false, false); } } include JPATH_ROOT . DS . 'components' . DS . 'com_onepage' . DS . 'config' . DS . 'onepage.cfg.php'; $cmd = JRequest::getVar('cmd', false); //$methods = OPCloader::getPluginMethods(); if (!$ajax) { if (!class_exists('vmPSPlugin')) { require JPATH_VM_PLUGINS . DS . 'vmpsplugin.php'; } JPluginHelper::importPlugin('vmpayment'); $dispatcher = JDispatcher::getInstance(); if (!isset($cart)) { $cart = VirtueMartCart::getCart(); } $plugins = array(); $html = ''; $results = $dispatcher->trigger('loadPluginJavascriptOPC', array(&$cart, &$plugins, &$html)); //include(JPATH_SITE.DS.'components'.DS.'com_onepage'.DS.'helpers'.DS.'third_party'.DS.'third_party_shipping_javascript.php'); if (!empty($html)) { OPCloader::$extrahtml .= $html; } unset($html); // so we don't update the address twice require_once JPATH_SITE . DS . 'components' . DS . 'com_onepage' . DS . 'controllers' . DS . 'opc.php'; $c = new VirtueMartControllerOpc(); $c->setAddress($cart, true, false, true); } if ($cmd != 'customershipping' && $cmd != 'runpay') { if (!empty($op_customer_shipping)) { $onclick = 'onclick="javascript: return Onepage.op_runSS(null, false, true, \'customershipping\');" '; $html = $this->fetch($ref, 'customer_shipping', array('onclick' => $onclick)); if (empty($html)) { $html = '<a href="#" ' . $onclick . ' >' . OPClang::_('COM_ONEPAGE_CLICK_HERE_TO_DISPLAY_SHIPPING') . '</a>'; } $html .= '<input type="hidden" name="invalid_country" id="invalid_country" value="invalid_country" /><input type="hidden" name="virtuemart_shipmentmethod_id" checked="checked" id="shipment_id_0" value="choose_shipping" />'; $shipping_choose_html = '<div id="customer_shipping_wrapper">' . $html . '</div>'; $shipping_choose_html_a = array(); $shipping_choose_html_a[] = $shipping_choose_html; } } require_once JPATH_SITE . DS . 'components' . DS . 'com_onepage' . DS . 'helpers' . DS . 'ajaxhelper.php'; $bhelper = new basketHelper(); if (!isset($shipping_choose_html_a)) { $sh = $bhelper->getShippingArrayHtml($ref, $cart, $ajax); } else { $sh = $shipping_choose_html_a; } if (empty($cart) || empty($cart->products)) { $op_disable_shipping = OPCloader::getShippingEnabled($cart); if (empty($op_disable_shipping)) { $html = '<input type="hidden" name="invalid_country" id="invalid_country" value="invalid_country" /><input type="hidden" name="virtuemart_shipmentmethod_id" checked="checked" id="shipment_id_0" value="choose_shipping" />'; } $html .= '<div style="color: red; font-weight: bold;">' . OPCLang::_('COM_VIRTUEMART_EMPTY_CART') . '</div>'; $sh = array($html); } if (!empty($disable_payment_per_shipping)) { $session = JFactory::getSession(); $dpps = array(); require_once JPATH_ROOT . DS . 'components' . DS . 'com_onepage' . DS . 'helpers' . DS . 'transform.php'; foreach ($sh as $k => $cs) { foreach ($dpps_search as $key => $val) { // if we find the need in the shipping, let's associate it with an id $val = urldecode($val); if (strpos($cs, $val) !== false) { //if (!empty($dpps[$key])) continue; $id = OPCTransform::getFT($cs, 'input', 'virtuemart_shipmentmethod_id', 'name', 'virtuemart_shipmentmethod_id', '>', 'value'); if (is_array($id)) { $id = reset($id); } if (empty($dpps[$key])) { $dpps[$key] = array(); } $dpps[$key][] = $id; } } } $session->set('dpps', $dpps); } if ($cart->pricesUnformatted['billTotal'] && empty($cart->pricesUnformatted['billTotal'])) { $ph = array(); } else { $ph = $bhelper->getPaymentArray(); } $bhelper->createDefaultAddress($ref, $cart); $html = $bhelper->getPaymentArrayHtml($ref->cart, $ph, $sh); self::$totals_html = basketHelper::$totals_html; $bhelper->restoreDefaultAddress($ref, $cart); //$ret = implode('<br />', $sh); $ret = ''; $ret .= $html; return $ret; }
public function fetchBasket(&$ref, $template, $vars, $new = '') { include JPATH_SITE . DS . 'components' . DS . 'com_onepage' . DS . 'config' . DS . 'onepage.cfg.php'; $op_disable_shipping = OPCloader::getShippingEnabled(); $no_shipping = $op_disable_shipping; $instance = OPCrenderer::getInstance(); return $instance->fetchVirtuemart('pricelist', 'cart', 'default'); }
function confirmedOrder() { $cart =& self::$current_cart; $payment_id = $cart->virtuemart_paymentmethod_id; include JPATH_ROOT . DS . 'components' . DS . 'com_onepage' . DS . 'config' . DS . 'onepage.cfg.php'; //Just to prevent direct call if ($cart->_dataValidated && $cart->_confirmDone) { require_once JPATH_ROOT . DS . 'components' . DS . 'com_onepage' . DS . 'helpers' . DS . 'mini.php'; $orderModel = OPCmini::getModel('Orders'); $this->getModifiedData($cart); if (!empty($delivery_date)) { $cart->delivery_date = $delivery_date; } $orderID = $orderModel->createOrderFromCart($cart); $this->getModifiedData($cart, true); $msgq1 = JFactory::getApplication()->get('messageQueue', array()); $msgq2 = JFactory::getApplication()->get('_messageQueue', array()); $op_disable_shipping = OPCloader::getShippingEnabled($cart); if ($op_disable_shipping) { //$q = 'update #__virtuemart_orders set } if (empty($orderID)) { $mainframe = JFactory::getApplication(); $this->redirect(JRoute::_('index.php?option=com_virtuemart&view=cart&task=checkout', false, VmConfig::get('useSSL', false))); } $cart->virtuemart_order_id = $orderID; $order = $orderModel->getOrder($orderID); self::$new_order =& $order; $this->getModifiedOrder($order, $cart); // $GLOBALS['is_dup'] if (!empty($orderID)) { if (!empty($GLOBALS['is_dup']) && is_numeric($GLOBALS['is_dup'])) { $dbj = JFactory::getDBO(); $q = "update #__virtuemart_orders SET virtuemart_user_id = '" . $this->getEscaped($dbj, $GLOBALS['is_dup']) . "' where virtuemart_order_id = '" . $this->getEscaped($dbj, $orderID) . "' limit 1"; $dbj->setQuery($q); $dbj->query(); $dbj = JFactory::getDBO(); $q = "update #__virtuemart_order_userinfos SET virtuemart_user_id = '" . $this->getEscaped($dbj, $GLOBALS['is_dup']) . "' where virtuemart_order_id = '" . $this->getEscaped($dbj, $orderID) . "' limit 2"; $dbj->setQuery($q); $dbj->query(); $e = $dbj->getErrorMsg(); } else { if (!empty($GLOBALS['opc_new_user']) && is_numeric($GLOBALS['opc_new_user'])) { $dbj = JFactory::getDBO(); $q = "update #__virtuemart_orders SET virtuemart_user_id = '" . $this->getEscaped($dbj, $GLOBALS['opc_new_user']) . "' where virtuemart_order_id = '" . $this->getEscaped($dbj, $orderID) . "' limit 1"; $dbj->setQuery($q); $dbj->query(); $dbj = JFactory::getDBO(); $q = "update #__virtuemart_order_userinfos SET virtuemart_user_id = '" . $this->getEscaped($dbj, $GLOBALS['opc_new_user']) . "' where virtuemart_order_id = '" . $this->getEscaped($dbj, $orderID) . "' limit 2"; $dbj->setQuery($q); $dbj->query(); $e = $dbj->getErrorMsg(); } } } //opc_new_user if (empty($order['details']['ST']->email) && !empty($order['details']['BT']->email)) { $order['details']['ST']->email = $order['details']['BT']->email; } // $cart = $this->getCart(); if (isset($order['details']['BT'])) { $this->doCurl($order['details']['BT']); } $dispatcher = JDispatcher::getInstance(); // $html=""; if ($order['details']['BT']->order_total <= 0) { $no_payment = true; } else { $no_payment = false; } if (empty($op_disable_shipping)) { JPluginHelper::importPlugin('vmshipment'); } JPluginHelper::importPlugin('vmcustom'); if (empty($no_payment)) { JPluginHelper::importPlugin('vmpayment'); } JPluginHelper::importPlugin('vmcustom'); JPluginHelper::importPlugin('vmcalculation'); $session = JFactory::getSession(); $return_context = $session->getId(); //end OPC email mod ob_start(); $order = $orderModel->getOrder($orderID); if ($order['details']['BT']->order_status != $zero_total_status) { if ($order['details']['BT']->order_total <= 0) { require_once JPATH_ROOT . DS . 'components' . DS . 'com_onepage' . DS . 'helpers' . DS . 'mini.php'; $modelOrder = OPCmini::getModel('orders'); $order['order_status'] = $zero_total_status; $order['customer_notified'] = 1; $order['comments'] = ''; $modelOrder->updateStatusForOneOrder($orderID, $order, true); //$order['paymentName']= $dbValues['payment_name']; //We delete the old stuff $cart->emptyCart(); } } $output = ob_get_clean(); //$returnValues = $dispatcher->trigger('plgVmConfirmedOrder', array($cart, $order)); // pairs the cookie with the database $returnValues = $dispatcher->trigger('plgOpcOrderCreated', array($cart, $order)); // runs shipping confirm as first and payment as last $returnValues = $dispatcher->trigger('plgVmConfirmedOrderOPC', array('shipment', $cart, $order)); $returnValues = $dispatcher->trigger('plgVmConfirmedOrderOPC', array('calculation', $cart, $order)); $returnValues = $dispatcher->trigger('plgVmConfirmedOrderOPC', array('custom', $cart, $order)); $except = array('shipment', 'custom', 'calculation'); $returnValues = $dispatcher->trigger('plgVmConfirmedOrderOPCExcept', array($except, $cart, $order)); //OPC: maybe we want to send emil before a redirect: if (!empty($send_pending_mail)) { if (!class_exists('shopFunctionsF')) { require JPATH_VM_SITE . DS . 'helpers' . DS . 'shopfunctionsf.php'; } //Important, the data of the order update mails, payments and invoice should //always be in the database, so using getOrder is the right method require_once JPATH_ROOT . DS . 'components' . DS . 'com_onepage' . DS . 'helpers' . DS . 'mini.php'; $orderModel = OPCmini::getModel('orders'); //$order = $orderModel->getOrder($orderID); $payment_name = $shipment_name = ''; $op_disable_shipping = OPCloader::getShippingEnabled($cart); $msgqx1 = JFactory::getApplication()->get('messageQueue', array()); $msgqx2 = JFactory::getApplication()->get('_messageQueue', array()); $msgqx3 = JFactory::getApplication()->getMessageQueue(); if (!class_exists('vmPSPlugin')) { require JPATH_VM_PLUGINS . DS . 'vmpsplugin.php'; } if (empty($op_disable_shipping)) { JPluginHelper::importPlugin('vmshipment'); } if (empty($no_payment)) { JPluginHelper::importPlugin('vmpayment'); } $dispatcher = JDispatcher::getInstance(); if (empty($op_disable_shipping)) { $returnValues = $dispatcher->trigger('plgVmonShowOrderPrintShipment', array($order['details']['BT']->virtuemart_order_id, $order['details']['BT']->virtuemart_shipmentmethod_id, &$shipment_name)); } if (empty($no_payment)) { $returnValues = $dispatcher->trigger('plgVmonShowOrderPrintPayment', array($order['details']['BT']->virtuemart_order_id, $order['details']['BT']->virtuemart_paymentmethod_id, &$payment_name)); } $order['shipmentName'] = $shipment_name; if (empty($no_payment)) { $order['paymentName'] = $payment_name; } else { $order['paymentName'] = ''; } $vars['orderDetails'] = $order; if (!isset($vars['newOrderData'])) { $vars['newOrderData'] = array(); } $vars['newOrderData']['customer_notified'] = 1; $vars['url'] = 'url'; $vars['doVendor'] = false; if (!empty($order['details']['BT']->virtuemart_vendor_id)) { $virtuemart_vendor_id = $order['details']['BT']->virtuemart_vendor_id; } else { $virtuemart_vendor_id = 1; } require_once JPATH_ROOT . DS . 'components' . DS . 'com_onepage' . DS . 'helpers' . DS . 'mini.php'; $vendorModel = OPCmini::getModel('vendor'); $vendor = $vendorModel->getVendor($virtuemart_vendor_id); $vars['vendor'] = $vendor; $vendorEmail = $vendorModel->getVendorEmail($virtuemart_vendor_id); if (empty($vendorEmail)) { $db = JFactory::getDBO(); $query = 'SELECT * FROM `#__virtuemart_vmusers`'; $db->setQuery($query); $res = $db->loadAssocList(); $query = 'SELECT ju.email FROM `#__virtuemart_vmusers` as vmu, `#__users` as ju WHERE `virtuemart_vendor_id`=' . (int) $virtuemart_vendor_id . ' and ju.id = vmu.virtuemart_user_id and vmu.user_is_vendor = 1 limit 0,1'; $db->setQuery($query); $vendorEmail = $db->loadResult(); } $vars['vendorEmail'] = $vendorEmail; // Send the email if (file_exists(JPATH_VM_SITE . DS . 'views' . DS . 'invoice' . DS . 'view.html.php')) { if (OPCcheckout::renderMail('invoice', $vendorEmail, $vars, null, true, false)) { //ok } $x = JFactory::getApplication()->set('messageQueue', $msgqx1); $x = JFactory::getApplication()->set('_messageQueue', $msgqx2); if (OPCJ3) { if (class_exists('ReflectionClass')) { $a = JFactory::getApplication(); $reflectionClass = new ReflectionClass($a); $property = $reflectionClass->getProperty('_messageQueue'); $property->setAccessible(true); $property->setValue($a, $msgqx3); $x = JFactory::getApplication()->getMessageQueue(); } } } } /* jimport( 'joomla.plugin.helper' ); $plugin = JPluginHelper::getPlugin('vmpayment', 'opctracking'); if (!empty($plugin)) { $opctracking = true; } else { $opctracking = false; } */ //$html = JRequest::getVar('html', JText::_('COM_VIRTUEMART_ORDER_PROCESSED'), null, 'string', JREQUEST_ALLOWRAW); $html = JRequest::getVar('html', JText::_('COM_VIRTUEMART_ORDER_PROCESSED'), 'default', 'STRING', JREQUEST_ALLOWRAW); $app = JFactory::getApplication(); require_once JPATH_SITE . DS . 'components' . DS . 'com_onepage' . DS . 'helpers' . DS . 'config.php'; $utm_p_load = false; $default = array(); $utm_p = OPCConfig::getValue('opc_config', 'utm_payments', 0, $default, false, false); if (!empty($payment_id)) { if (in_array($payment_id, $utm_p)) { $utm_p_load = true; } } if (method_exists($app, 'input')) { $html2 = $app->input->get('html', JText::_('COM_VIRTUEMART_ORDER_PROCESSED'), 'RAW'); if ($utm_p_load) { $html2 = str_replace('&view=', '&utm_nooverride=1&view=', $html2); $html2 = str_replace('&view=', '&utm_nooverride=1&view=', $html2); $app->input->set('html', $html2); } } else { $html2 = JRequest::getVar('html', JText::_('COM_VIRTUEMART_ORDER_PROCESSED'), 'default', 'STRING', JREQUEST_ALLOWRAW); if ($utm_p_load) { $html2 = str_replace('&view=pluginresponse', '&utm_nooverride=1&view=pluginresponse', $html2); $html2 = str_replace('&view=pluginresponse', '&utm_nooverride=1&view=pluginresponse', $html2); JRequest::setVar('html', $html2); } } if ($html != $html2) { $output .= $html2; } $output .= $html; ob_start(); if ($order['details']['BT']->order_total <= 0) { $cart->emptyCart(); } $output .= ob_get_clean(); $x = JFactory::getApplication()->set('messageQueue', $msgq1); $x = JFactory::getApplication()->set('_messageQueue', $msgq2); if (!empty($output)) { return $output; } // may be redirect is done by the payment plugin (eg: paypal) // if payment plugin echos a form, false = nothing happen, true= echo form , // 1 = cart should be emptied, 0 cart should not be emptied } }
define("_MIN_POV_REACHED", '1'); $no_jscheck = true; if (empty($langcode)) { if (!empty($tag)) { $arr = explode('-', $tag); if (!empty($arr[0])) { $langcode = $arr[0]; } } if (empty($langcode)) { $langcode = 'en'; } } $GLOBALS['mosConfig_locale'] = $langcode; // legacy vars to be deleted: $op_disable_shipping = OPCloader::getShippingEnabled($this->cart); if (empty($op_disable_shipping)) { $op_disable_shipping = false; } $no_shipping = $op_disable_shipping; $cart = $this->cart; if (!empty($min_reached_text)) { JFactory::getApplication()->enqueueMessage($min_reached_text); } if (!empty($min_reached_text) && file_exists(JPATH_OPC . DS . 'themes' . DS . $selected_template . DS . 'onepage.min.tpl.php')) { echo '<div class="opc_minorder_wrapper" id="opc_minorder_wrapper" >'; include JPATH_OPC . DS . 'themes' . DS . $selected_template . DS . 'onepage.min.tpl.php'; echo '</div>'; } else { if (OPCloader::logged($cart)) { if (!empty($min_reached_text)) {
function getPaymentArrayHtml($cart2, $payment_array, &$shipping_array) { include JPATH_ROOT . DS . 'components' . DS . 'com_onepage' . DS . 'config' . DS . 'onepage.cfg.php'; if (is_null(OPCloader::$inform_html)) { OPCloader::$inform_html = array(); } $preselected = JRequest::getVar('virtuemart_shipmentmethod_id', JRequest::getVar('shipping_rate_id', '')); $default = array(); $session = JFactory::getSession(); $session->set('fedex_rates', null, 'vm'); // if ($op_show_others) $vendor_freeshipping = 0; // $extHelper = new opExtension(); // $extHelper->runExt('setFreeShipping', '', '', $vars['country'], $vendor_freeshipping); // coupon will get counted again $cart = VirtueMartCart::getCart(); $add = array(); if (!empty($payment_array)) { foreach ($payment_array as &$pay) { if (isset($pay->payment_element)) { if (!empty($pay->split_plugin_path)) { include $pay->split_plugin_path; } } //if (!empty($params)) break; } } if (!empty($add)) { //array_merge($payment_array, $add); foreach ($add as $v) { $payment_array[] = $v; } } $payment_array['zero_payment'] = '<input type="hidden" value="0" name="virtuemart_paymentmethod_id" />'; // again and again we have to do overrides because VM team decides about private functions and properties $dispatcher = JDispatcher::getInstance(); $prices = array(); // renew parameters //For the selection of the shipment method we need the total amount to pay. require_once JPATH_ROOT . DS . 'components' . DS . 'com_onepage' . DS . 'helpers' . DS . 'mini.php'; $shipmentModel = OPCmini::getModel('Shipmentmethod'); //new VirtueMartModelShipmentmethod(); // the configuration is reloaded only when this function is called interanally // getPluginMethods which is called by FEdisplay method $html = ''; self::$totals_html = ''; if (!empty($cart->couponCode)) { self::$totals_html = '<input type="hidden" id="opc_coupon_code_returned" name="opc_coupon_code_returned" value="' . OPCloader::slash($cart->couponCode) . '" />'; } else { self::$totals_html = '<input type="hidden" id="opc_coupon_code_returned" name="opc_coupon_code_returned" value="" />'; } //$opc_calc_cache = true; if (file_exists(JPATH_ROOT . DS . 'components' . DS . 'com_onepage' . DS . 'overrides' . DS . 'calculationh.php')) { if (!empty($opc_calc_cache)) { require_once JPATH_ROOT . DS . 'components' . DS . 'com_onepage' . DS . 'overrides' . DS . 'calculationh.php'; if (!class_exists('calculationHelperOPC')) { require JPATH_ROOT . DS . 'components' . DS . 'com_onepage' . DS . 'overrides' . DS . 'calculationh_override.php'; } } } // from vm 2.0.22 $calc = calculationHelper::getInstance(); if (!empty($opc_calc_cache)) { if (class_exists('calculationHelperOPC')) { $calc = calculationHelperOPC::getInstanceOPC(); } } /* $class = new ReflectionClass('calculationHelper'); $method = $class->getMethod('setShopperGroupIds'); $method->setAccessible(true); $method->invokeArgs($calc, array('6')); */ if (method_exists($calc, 'setCartPrices')) { $vm2015 = true; } else { $vm2015 = false; } /* foreach ($cart->products as &$p) $calc-> */ $mainframe = Jfactory::getApplication(); $virtuemart_currency_id = $mainframe->getUserStateFromRequest("virtuemart_currency_id", 'virtuemart_currency_id', JRequest::getInt('virtuemart_currency_id')); //$calc->setVendorCurrency($virtuemart_currency_id); if (!empty($virtuemart_currency_id)) { $currencyDisplay = CurrencyDisplay::getInstance($virtuemart_currency_id); } else { $currencyDisplay = CurrencyDisplay::getInstance($cart->paymentCurrency); $virtuemart_currency_id = $cart->paymentCurrency; } $unset_zero = true; if (empty($shipping_array)) { $shipping_array = array(); $cart->virtuemart_shipmentmethod_id = 0; $unset_zero = false; } $shipping_array['zero_shipment'] = '<input type="hidden" name="virtuemart_shipmentmethod_id" checked="checked" id="shipment_id_0" value="0" />'; $shipping_array['choose_shipping'] = '<input type="radio" value="0" id="shipment_id_0" />'; $payment_a = new stdClass(); $payment_a->virtuemart_paymentmethod_id = 0; $payment_array[] = $payment_a; if (!class_exists('CurrencyDisplay')) { require JPATH_VM_ADMINISTRATOR . DS . 'helpers' . DS . 'currencydisplay.php'; } $currencyDisplay = CurrencyDisplay::getInstance($cart->pricesCurrency); //do_dump($shipping_array); die(); //virtuemart_currency_id foreach ($shipping_array as &$shipping_method) { foreach ($payment_array as &$payment) { if (strpos($shipping_method, 'invalid_country') !== false) { $cart->virtuemart_shipmentmethod_id = 0; } if (strpos($shipping_method, 'virtuemart_shipmentmethod_id') === false) { $cart->virtuemart_shipmentmethod_id = 0; } $multishipmentid = array(); if (!empty($shipping_method)) { //check opc multi methods: //multielementgetphp $multishipmentid = OPCTransform::getFT($shipping_method, 'input', 'virtuemart_shipmentmethod_id', 'type', 'radio', '>', 'id'); //example of a multi method with select drop down: /* foreach ($pobocky_options as $ppp) { $pobocky .= '<option '; if ($sind == $ppp->id) $pobocky .= ' selected="selected" '; $pobocky .= ' ismulti="true" multi_id="shipment_id_'.$method->virtuemart_shipmentmethod_id.'_'.$ppp->id.'" value="'.$ppp->id.'">'.$ppp->nazev.'</option>'; } */ $real_id = false; $multishipmentid_test = OPCTransform::getFT($shipping_method, 'option', 'ismulti', 'ismulti', 'true', '>', 'multi_id'); if (!empty($multishipmentid_test)) { if (!empty($multishipmentid)) { $real_id = $multishipmentid[0]; } $multishipmentid = $multishipmentid_test; } if (empty($multishipmentid)) { $multishipmentid = OPCTransform::getFT($shipping_method, 'input', 'cpsol_radio', 'type', 'radio', '>', 'id'); } //$idth = 'shipment_id_'.$shipmentid; // $idth = $shipmentid; } else { $idth = 'shipment_id_0'; } if (empty($multishipmentid)) { $idth = 'shipment_id_0'; $multishipmentid[0] = $idth; } foreach ($multishipmentid as $shipmentid) { $idth = $shipmentid; $ida = OPCTransform::getFT($shipping_method, 'input', 'virtuemart_shipmentmethod_id', 'type', 'hidden', '>', 'value'); if (empty($ida)) { $ida = OPCTransform::getFT($shipping_method, 'input', $shipmentid, 'type', 'radio', '>', 'value'); } if (!empty($ida[0])) { $id = $ida[0]; } else { $id = 0; } if (!isset($payment->virtuemart_paymentmethod_id)) { $payment_id = 0; } else { $payment_id = (int) $payment->virtuemart_paymentmethod_id; } $_REQUEST['virtuemart_shipmentmethod_id'] = $id; $cart->automaticSelectedShipment = true; $cart->automaticSelectedPayment = true; $cart->automaticSelectedShipment = true; $cart->automaticSelectedPayment = true; $cart->setPaymentMethod($payment_id); if (method_exists($cart, 'setShipment')) { $cart->setShipment($id); } $cart->virtuemart_shipmentmethod_id = $id; $cart->virtuemart_paymentmethod_id = $payment_id; $payment_id_override = 0; // if (isset($payment->payment_element)) { if (!empty($payment->preparecalculation_path)) { include $payment->preparecalculation_path; } } $htmlsaved = $html; $html = ''; require JPATH_SITE . DS . 'components' . DS . 'com_onepage' . DS . 'helpers' . DS . 'third_party' . DS . 'third_party_shipping.php'; $md5 = md5($html); OPCloader::$inform_html[$md5] = $html; //self::$totals_html .= $html; $html = $htmlsaved; //$cart = VirtueMartCart::getCart(); //$returnValues = $dispatcher->trigger('calculateSalesPrice',array( &$cart, &$id, &$cart->priceUnformatted )); $cart->setCartIntoSession(); /* if (!class_exists('VirtueMartControllerCartOpc')) require_once(JPATH_SITE.DS.'components'.DS.'com_onepage'.DS.'overrides'.DS.'cartcontroller.php'); $cartcontroller = new VirtueMartControllerCartOpc(); */ // will trigger plugin code for the selected shipment JRequest::setVar('virtuemart_shipmentmethod_id', $id); //OLD: $cartcontroller->setshipment($cart, $id, false, false); $savedp = $cart->virtuemart_paymentmethod_id; $seveds = $cart->virtuemart_shipmentmethod_id; if (!empty($id)) { ob_start(); $_dispatcher = JDispatcher::getInstance(); $_retValues = $_dispatcher->trigger('plgVmOnSelectCheckShipment', array(&$cart)); $x = ob_get_clean(); } $cart->virtuemart_paymentmethod_id = $savedp; $cart->virtuemart_shipmentmethod_id = $seveds; $op_disable_shipping = OPCloader::getShippingEnabled($cart); if (empty($op_disable_shipping)) { if (!$vm2015) { $prices = $calc->calculateShipmentPrice($cart, $id, true); } } else { $cart->virtuemart_shipmentmethod_id = 0; //if (!$vm2015) //$calc->calculateShipmentPrice($cart, $id, false); //$calc->_cartPrices } if (!$vm2015) { $calc->calculatePaymentPrice($cart, $payment_id, true); } else { //$calc->_cartData = null; //$ref->cart->cartData = null; $calc->setCartPrices(array()); } $prices = array(); $this->getCachedShipping($cart, $prices, $idth, $calc); $cart->pricesUnformatted = $prices; if (empty($subtotal_price_display)) { $subtotal_price_display = 'salesPrice'; } if ($subtotal_price_display != 'diffTotals') { $order_subtotal = $prices[$subtotal_price_display]; /* if (empty($order_subtotal)) { $order_subtotal = $prices['salesPrice']; } */ } if (empty($order_subtotal)) { $order_subtotal = $prices['salesPrice']; $subtotal_price_display = 'salesPrice'; } if ($subtotal_price_display == 'diffTotals') { // difference of billTotal and billTaxAmount $order_subtotal = $prices['billTotal'] - $prices['billTaxAmount']; } $order_subtotal = $currencyDisplay->convertCurrencyTo($virtuemart_currency_id, $order_subtotal, false); $order_total = $prices['billTotal']; $order_total = $currencyDisplay->convertCurrencyTo($virtuemart_currency_id, $order_total, false); $order_tax = 0; if ($coupon_price_display == 'salesWithoutTax') { if (isset($prices['couponTax'])) { $cT = $prices['couponTax']; } else { $cT = 0; } if (isset($prices['salesPriceCoupon'])) { $cS = $prices['salesPriceCoupon']; } else { $cS = 0; } $prices['salesWithoutTax'] = $cS - $cT; } if (empty($coupon_price_display)) { $coupon_price_display = 'discountAmount'; } if (!empty($prices[$coupon_price_display])) { $coupon_discount = $prices[$coupon_price_display]; } else { $coupon_discount = 0; } $coupon_discount = $currencyDisplay->convertCurrencyTo($virtuemart_currency_id, $coupon_discount, false); if (!empty($payment_discount_before)) { $coupon_discount2 = 0; if (empty($other_discount_display)) { $other_discount_display = 'billDiscountAmount'; } switch ($other_discount_display) { case 'billDiscountAmount': $coupon_discount2 = $coupon_discount2 = $prices['billDiscountAmount']; break; case 'discountAmount': $coupon_discount2 = $prices['billDiscountAmount']; break; case 'minus': $billD = abs($prices['billDiscountAmount']); foreach ($prices as $key => $val) { if (!empty($cart->products[$key])) { if (is_array($val)) { $billD -= abs($val['subtotal_discount']); } } } $billD = abs($billD) * -1; $prices_new['billTotal'] = $billD; $coupon_discount2 = $billD; break; case 'sum': $billD = 0; foreach ($prices as $key => $val) { if (!empty($cart->products[$key])) { if (is_array($val)) { $billD += $val['subtotal_discount']; } } } $billD = abs($billD) * -1; $prices_new['billTotal'] = $billD; $coupon_discount2 = $billD; break; } if (!empty($coupon_discount2)) { $coupon_discount2 = $currencyDisplay->convertCurrencyTo($virtuemart_currency_id, $coupon_discount2, false); } /* if (!empty($prices['billDiscountAmount'])) { $coupon_discount2 = $prices['billDiscountAmount']; $coupon_discount2 = $currencyDisplay->convertCurrencyTo( $virtuemart_currency_id, $coupon_discount2,false); } else if (!empty($prices['discountAmount'])) { $coupon_discount2 = $prices['discountAmount']; $coupon_discount2 = $currencyDisplay->convertCurrencyTo( $virtuemart_currency_id, $coupon_discount2,false); } else $coupon_discount2 = 0; */ } else { $coupon_discount2 = 0; } if (!empty($payment_discount_before)) { if (empty($coupon_discount2)) { if (!empty($prices['couponValue'])) { // $coupon_discount2 = $prices['couponValue']; } } } if ($product_price_display == 'basePriceWithTax' || $product_price_display == 'salesPrice') { $shippingpayment_price_display = 'salesPrice'; } else { $shippingpayment_price_display = 'basePrice'; } if (empty($prices['basePriceWithTax'])) { $shippingpayment_price_display = 'basePrice'; } $subtotal_price_display = $product_price_display; if (!isset($prices[$shippingpayment_price_display . 'Shipment'])) { if ($shippingpayment_price_display != 'salesPrice') { $order_shipping = $prices['shipmentValue']; } else { $order_shipping = $prices['salesPriceShipment']; } } else { $order_shipping = $prices[$shippingpayment_price_display . 'Shipment']; } $order_shipping = $currencyDisplay->convertCurrencyTo($virtuemart_currency_id, $order_shipping, false); if ($shippingpayment_price_display != 'salesPrice') { $ps = $prices['salesPriceShipment']; $ps = $currencyDisplay->convertCurrencyTo($virtuemart_currency_id, $ps, false); $ps = $currencyDisplay->priceDisplay($ps); $os = $currencyDisplay->priceDisplay($order_shipping); $shipping_method = str_replace($ps, $os, $shipping_method); } $order_shipping = (double) $order_shipping; if (empty($order_shipping)) { } // lets select a default shipping method: // first shipping found: // none to be selected by default if nothing is already selected: if (empty($preselected) && (!empty($opc_default_shipping) && $opc_default_shipping == 3)) { $default['id'] = 0; $default['shipmentid'] = 'choose_shipping'; $default['price'] = 0; } else { if (!empty($id)) { if (empty($default)) { $default['id'] = $id; $default['shipmentid'] = $shipmentid; $default['price'] = $order_shipping; } else { // preselected found (from $_REQUEST) if ($preselected == $id) { // if we found the preselected, let's leave it there $default['p'] = true; $default['id'] = $id; if (!empty($real_id)) { $default['shipmentid'] = $real_id; } else { $default['shipmentid'] = $shipmentid; } $default['price'] = $order_shipping; } // check if we already selected: if (empty($default['p'])) { if (!empty($op_default_shipping_search)) { foreach ($op_default_shipping_search as $s) { if ($shipmentid == $s) { $default['id'] = $id; $default['shipmentid'] = $shipmentid; $default['price'] = $order_shipping; $default['p'] = true; break; } } } if (empty($default['p'])) { if (empty($opc_default_shipping) || $opc_default_shipping === 1) { if ($default['price'] > $order_shipping || empty($default['price']) && !empty($order_shipping)) { if ($op_default_shipping_zero && empty($order_shipping)) { $default['id'] = $id; $default['shipmentid'] = $shipmentid; $default['price'] = $order_shipping; } else { if (!$op_default_shipping_zero && !empty($order_shipping)) { $default['id'] = $id; $default['shipmentid'] = $shipmentid; $default['price'] = $order_shipping; } } } } else { if (!empty($opc_default_shipping) && $opc_default_shipping === 2) { // select the most expensive here: if ($default['price'] < $order_shipping || empty($default['price']) && !empty($order_shipping)) { if (!$op_default_shipping_zero && !empty($order_shipping)) { $default['id'] = $id; $default['shipmentid'] = $shipmentid; $default['price'] = $order_shipping; } } } } } } } } } if ($shippingpayment_price_display == 'basePrice') { $paymentPriceType = 'paymentValue'; } else { $paymentPriceType = 'salesPricePayment'; } if (isset($prices[$shippingpayment_price_display . 'Payment'])) { $payment_discount = -1 * $prices[$shippingpayment_price_display . 'Payment']; } else { if (!empty($prices[$paymentPriceType])) { $payment_discount = -1 * $prices[$paymentPriceType]; } else { $payment_discount = -1 * $prices['salesPricePayment']; } } $payment_discount = $currencyDisplay->convertCurrencyTo($virtuemart_currency_id, $payment_discount, false); $tax_id = 0; $taxname = array(); $taxrate = array(); $taxamount = array(); if (!empty($cart->cartData['DBTaxRulesBill'])) { foreach ($cart->cartData['DBTaxRulesBill'] as $rule) { $tax_id = $rule['virtuemart_calc_id']; $taxname[$tax_id] = $rule['calc_name']; $taxrate[$tax_id] = $rule['calc_value']; $tax = $prices[$tax_id . 'Diff']; if (empty($tax)) { $tax = $cart->pricesUnformatted[$tax_id . 'Diff']; } if (!empty($tax)) { $taxamount[$tax_id] = $tax; } } } if (!empty($cart->cartData['taxRulesBill'])) { foreach ($cart->cartData['taxRulesBill'] as $x) { $tax_id = $x['virtuemart_calc_id']; $taxname[$tax_id] = $x['calc_name']; $taxrate[$tax_id] = $x['calc_value']; if (isset($prices[$tax_id . 'Diff'])) { $tax = $prices[$tax_id . 'Diff']; } else { $tax = 0; } if (empty($tax) && isset($cart->pricesUnformatted[$tax_id . 'Diff'])) { $tax = $cart->pricesUnformatted[$tax_id . 'Diff']; } // convert the tax if (!empty($tax)) { $tax = $currencyDisplay->convertCurrencyTo($virtuemart_currency_id, $tax, false); $taxamount[$tax_id] = $tax; } } } // this tax is already included in the subtotal if (!empty($prices)) { foreach ($prices as $k => $x2) { if (isset($x2['Tax']) && is_array($x2['Tax'])) { foreach ($x2['Tax'] as $ind => $r) { $tax_id = $ind; $taxname[$tax_id] = $r[0]; $taxrate[$tax_id] = $r[1]; if (isset($prices[$tax_id . 'Diff'])) { $tax = $prices[$tax_id . 'Diff']; } if (empty($tax)) { if (isset($cart->pricesUnformatted[$tax_id . 'Diff'])) { $tax = $cart->pricesUnformatted[$tax_id . 'Diff']; } } if (!empty($tax)) { $taxamount[$tax_id] = $tax; } } } } } //stAn, 2.0.226: //dynamic lines start if (!empty($opc_dynamic_lines)) { $types = array('DATax', 'VatTax', 'Tax', 'DBTax'); $results = array(); $resultsNames = array(); foreach ($prices as $key => $val) { if (is_array($prices[$key])) { if (!empty($prices[$key]['subtotal_tax_amount'])) { foreach ($types as $ttype) { if (!empty($prices[$key][$ttype])) { foreach ($prices[$key][$ttype] as $id => $calcOp) { if (empty($calcOp)) { continue; } $tax = array(); $tax['calc_name'] = $calcOp[0]; $tax['calc_value'] = $calcOp[1]; $tax['calc_value_mathop'] = $calcOp[2]; $tax['calc_shopper_published'] = $calcOp[3]; $tax['calc_currency'] = $calcOp[4]; $tax['calc_params'] = $calcOp[5]; $tax['virtuemart_vendor_id'] = $calcOp[6]; $tax['virtuemart_calc_id'] = $calcOp[7]; $res = $calc->interpreteMathOp($tax, $prices[$key]['subtotal']); if (!isset($results[$id])) { $results[$id] = 0; } $results[$id] += $res - $prices[$key]['subtotal']; $resultsNames[$id] = JText::_($tax['calc_name']); } } } } } } $billRuls = array(); if (!empty($cart->OPCCartData['DBTaxRulesBill'])) { foreach ($cart->OPCCartData['DBTaxRulesBill'] as $rule) { if (empty($rule)) { continue; } $results[$rule['virtuemart_calc_id']] = $prices[$rule['virtuemart_calc_id'] . 'Diff']; $restulsNamed[$rule['virtuemart_calc_id']] = $rule['calc_name']; $billRuls[$rule['virtuemart_calc_id']] = $rule['virtuemart_calc_id']; } } if (!empty($cart->OPCCartData['taxRulesBill'])) { foreach ($cart->OPCCartData['taxRulesBill'] as $rule) { if (empty($rule)) { continue; } $results[$rule['virtuemart_calc_id']] = $prices[$rule['virtuemart_calc_id'] . 'Diff']; $restulsNamed[$rule['virtuemart_calc_id']] = $rule['calc_name']; $billRuls[$rule['virtuemart_calc_id']] = $rule['virtuemart_calc_id']; } } if (!empty($cart->OPCCartData['DATaxRulesBill'])) { foreach ($cart->OPCCartData['DATaxRulesBill'] as $rule) { if (empty($rule)) { continue; } $results[$rule['virtuemart_calc_id']] = $prices[$rule['virtuemart_calc_id'] . 'Diff']; $restulsNamed[$rule['virtuemart_calc_id']] = $rule['calc_name']; $billRuls[$rule['virtuemart_calc_id']] = $rule['virtuemart_calc_id']; } } //DATaxRulesBill end //shipping fee if (!empty($results)) { reset($results); $first_key = key($results); if (empty($prices['shipment_calc_id'])) { if (!empty($prices['shipmentTax'])) { $results[$first_key] += $prices['shipmentTax']; } } else { if (!is_array($prices['shipment_calc_id'])) { if (!empty($prices['shipmentTax'])) { if (!isset($results[$prices['shipment_calc_id']])) { $results[$prices['shipment_calc_id']] = 0; } $results[(int) $prices['shipment_calc_id']] += $prices['shipmentTax']; } } else { foreach ($prices['shipment_calc_id'] as $calc_id) { if (!isset($results[$calc_id])) { $results[$calc_id] = 0; } $results[$calc_id] += $prices['shipmentTax']; // maybe we should add it just once !!! } } } if (empty($prices['payment_calc_id'])) { if (!empty($prices['paymentTax'])) { $results[$first_key] += $prices['paymentTax']; } } else { if (!is_array($prices['payment_calc_id'])) { if (!empty($prices['paymentTax'])) { if (!isset($results[$prices['payment_calc_id']])) { $results[$prices['payment_calc_id']] = 0; } $results[$prices['payment_calc_id']] += $prices['paymentTax']; } } else { foreach ($prices['payment_calc_id'] as $calc_id) { if (!isset($results[$calc_id])) { $results[$calc_id] = 0; } $results[$calc_id] += $prices['paymentTax']; // maybe we should add it just once !!! } } } } $dynamic = array(); foreach ($results as $key => $val) { //this is for the bill taxes: if (isset($prices[$key . 'Diff'])) { if ($prices[$key . 'Diff'] > $val) { $val = $key . 'Diff'; } } $dynamic[$key]['value'] = $currencyDisplay->convertCurrencyTo($virtuemart_currency_id, $val, false); if (!isset($resultsNames[$key])) { $db = JFactory::getDBO(); $q = 'select calc_name from #__virtuemart_calcs where virtuemart_calc_id = ' . (int) $key . ' limit 0,1'; $db->setQuery($q); $resultsNames[$key] = $name = $db->loadResult(); } $dynamic[$key]['name'] = $resultsNames[$key]; } //stAn, 2.0.226 end if (!empty($prices)) { foreach ($prices as $k => $x2) { if (strpos($k, 'Diff') !== false) { $k2 = str_replace('Diff', '', $k); if (!empty($results) && !array_key_exists($k2, $results)) { if (is_numeric($k2)) { $k2 = (int) $k2; $db = JFactory::getDBO(); $q = 'select calc_name from #__virtuemart_calcs where virtuemart_calc_id = ' . $k2 . ' limit 0,1'; $db->setQuery($q); $name = $db->loadResult(); // to support multilang $name = JText::_($name); $dynamic[$k2]['name'] = $name; $val = 0; if (isset($cart->OPCCartData['VatTax'])) { if (isset($cart->OPCCartData['VatTax'][$k2])) { if (isset($cart->OPCCartData['VatTax'][$k2]['taxAmount'])) { $val = $cart->OPCCartData['VatTax'][$k2]['taxAmount']; if (isset($prices['shipmentTax'])) { $val += $prices['shipmentTax']; } if (isset($prices['paymentTax'])) { $val += $prices['paymentTax']; } } } } if ($val == 0) { $val = $x2; } $dynamic[$k2]['value'] = $currencyDisplay->convertCurrencyTo($virtuemart_currency_id, $val, false); } } } } } } //dynamic lines end // add shipment tax to it's plugins subtotal if (!empty($prices['shipmentTax'])) { if (isset($prices['shipment_calc_id'])) { if (!is_array($prices['shipment_calc_id'])) { if (!isset($taxamount[$prices['shipment_calc_id']])) { $taxamount[$prices['shipment_calc_id']] = 0; } $taxamount[$prices['shipment_calc_id']] += $prices['shipmentTax']; } else { foreach ($prices['shipment_calc_id'] as $calc_id) { if (!isset($taxamount[$calc_id])) { $taxamount[$calc_id] = 0; } $taxamount[$calc_id] += $prices['shipmentTax']; // maybe we should add it just once !!! // break; } } } } if (!isset($tax)) { $tax = 0; } if (!empty($prices['paymentTax'])) { if (isset($prices['payment_calc_id'])) { if (!is_array($prices['payment_calc_id'])) { if (!isset($taxamount[$prices['payment_calc_id']])) { $taxamount[$prices['payment_calc_id']] = 0; } $taxamount[$prices['payment_calc_id']] += $prices['paymentTax']; } else { foreach ($prices['payment_calc_id'] as $calc_id) { if (!isset($taxamount[$calc_id])) { $taxamount[$calc_id] = 0; } $taxamount[$calc_id] += $prices['paymentTax']; } } } else { if (isset($prices['payment_tax_id'])) { if (!isset($taxamount[$prices['payment_tax_id']])) { $taxamount[$prices['payment_tax_id']] = 0; } $taxamount[$prices['payment_tax_id']] += $prices['paymentTax']; } } } $order_tax = $prices['billTaxAmount']; $order_tax = $currencyDisplay->convertCurrencyTo($virtuemart_currency_id, $order_tax, false); // ok, here we should reprocess the coupon if (!empty($payment_id_override)) { $o = '<input type="hidden" id="payment_id_override_' . $payment_id . '" value="1"/>'; if (!defined('payment_id_override_' . $payment_id)) { self::$totals_html .= $o; define('payment_id_override_' . $payment_id, 1); } $payment_id = $payment_id_override; } self::$totals_html .= '<input type="hidden" id="' . $idth . '_' . $payment_id . '_subtotal" value="' . $order_subtotal . '"/>'; $sum = (double) 0; // this shows if (count($taxname) >= 1 && empty($show_single_tax)) { //if (!defined('.$idth.'_'.$payment_id.'_tax $taxhtml = ''; foreach ($taxname as $id => $name) { $rate = (double) $taxrate[$id] / 100; if (empty($taxamount[$id])) { continue; } $tax = $taxamount[$id]; if (!is_numeric($tax)) { // we have a possible cross compatiblity error here $tax = 0; } $sum += $tax; self::$totals_html .= '<input type="hidden" name="' . $idth . '_' . $payment_id . '_tax" value="' . $rate . '|' . $tax . '"/>'; self::$totals_html .= '<input type="hidden" name="' . $idth . '_' . $payment_id . '_taxname" value="' . OPCloader::slash($name) . '"/>'; } } self::$totals_html .= '<input type="hidden" name="' . $idth . '_' . $payment_id . '_tax_all" id="' . $idth . '_' . $payment_id . '_tax_all" value="|' . $order_tax . '"/>'; if (!empty($dynamic)) { foreach ($dynamic as $key => $val) { if (!empty($dynamic[$key]['value'])) { self::$totals_html .= '<input type="hidden" name="' . $idth . '_' . $payment_id . '_dynamic" rel="' . $key . '" id="' . $idth . '_' . $payment_id . '_dynamicvalue_' . $key . '" stringname="' . OPCloader::slash($dynamic[$key]['name']) . '" value="' . $dynamic[$key]['value'] . '"/>'; } } } if (!empty($payment_discount)) { self::$totals_html .= '<input type="hidden" id="' . $idth . '_' . $payment_id . '_payment_discount" value="' . $payment_discount . '"/>'; } else { self::$totals_html .= '<input type="hidden" id="' . $idth . '_' . $payment_id . '_payment_discount" value="0.00"/>'; } if (!empty($coupon_discount)) { self::$totals_html .= '<input type="hidden" id="' . $idth . '_' . $payment_id . '_coupon_discount" value="' . $coupon_discount . '"/>'; } else { self::$totals_html .= '<input type="hidden" id="' . $idth . '_' . $payment_id . '_coupon_discount" value="0.00"/>'; } if (!empty($coupon_discount2)) { self::$totals_html .= '<input type="hidden" id="' . $idth . '_' . $payment_id . '_coupon_discount2" value="' . $coupon_discount2 . '"/>'; } else { self::$totals_html .= '<input type="hidden" id="' . $idth . '_' . $payment_id . '_coupon_discount2" value="0.00"/>'; } if (!empty($order_shipping)) { self::$totals_html .= '<input type="hidden" id="' . $idth . '_' . $payment_id . '_order_shipping" value="' . $order_shipping . '"/>'; } else { self::$totals_html .= '<input type="hidden" id="' . $idth . '_' . $payment_id . '_order_shipping" value="0.00"/>'; } if (!empty($order_shipping_tax)) { self::$totals_html .= '<input type="hidden" id="' . $idth . '_' . $payment_id . '_order_shipping_tax" value="' . $order_shipping_tax . '"/>'; } else { self::$totals_html .= '<input type="hidden" id="' . $idth . '_' . $payment_id . '_order_shipping_tax" value="0.00"/>'; } if (!empty($order_total)) { self::$totals_html .= '<input type="hidden" id="' . $idth . '_' . $payment_id . '_order_total" value="' . $order_total . '"/>'; } else { self::$totals_html .= '<input type="hidden" id="' . $idth . '_' . $payment_id . '_order_total" value="0.00"/>'; } } } } unset($ke); unset($html2); if (!empty($unset_zero)) { unset($shipping_array['zero_shipment']); } unset($payment_array['zero_payment']); if (!empty($shipping_array)) { unset($shipping_array['choose_shipping']); } $wrapper = '<!--shipping_goes_here-->'; $num = 1; if (!empty($shipping_array)) { if (!empty($shipping_inside)) { $num = 0; $ret = OPCTransform::shippingToSelect($shipping_array, $num, $cart); if (!empty($num)) { $html .= $ret; } } } if (!empty($shipping_array)) { if (empty($shipping_inside) || empty($num)) { $htmla = array(); foreach ($shipping_array as $ke => &$html2) { if (strpos($html2, 'virtuemart_shipmentmethod_id') !== false) { $tmp = $tmp2 = $shipping_array[$ke]; //substr($shipping_array[$ke], $x1, $x2); if (!empty($default)) { $shipmentid = (string) $default['shipmentid']; } else { $shipmentid = ''; } if (strpos($tmp, '"' . $shipmentid . '"') !== false) { $tmp = str_replace('checked="checked"', '', $tmp); $tmp = str_replace('checked', '', $tmp); //virtuemart_shipmentmethod_id $tmp = str_replace('name="virtuemart_shipmentmethod_id"', ' autocomplete="off" name="virtuemart_shipmentmethod_id"', $tmp); if (!empty($default)) { $tmp = $this->str_replace_once('"' . $shipmentid . '"', '"' . $shipmentid . '" checked="checked" ', $tmp); } } $tmp = str_replace('name="virtuemart_shipmentmethod_id"', 'name="virtuemart_shipmentmethod_id" onclick="javascript:Onepage.changeTextOnePage3(op_textinclship, op_currency, op_ordertotal);" ', $tmp); //if (strpos($tmp, 'shipment_id_'.$id.'"')!== false) $tmp.' ok sel '; $shipping_array[$ke] = $tmp; //str_replace($shipping_array[$ke], $tmp, $shipping_array[$ke]); $x1 = strpos($shipping_array[$ke], '<input'); $x1a = basketHelper::strposall($shipping_array[$ke], '<input'); if (!empty($x1a)) { foreach ($x1a as $x1) { $x2 = strpos($shipping_array[$ke], '>', $x1 + 1); if ($x2 !== false) { if (substr($shipping_array[$ke], $x2 - 1, 1) != '/') { // fixed a bug in 2.0.87 !! otherwise the shipping method might be rendered incorrectly $a1 = substr($shipping_array[$ke], 0, $x2); $a2 = substr($shipping_array[$ke], $x2); $shipping_array[$ke] = $a1 . '/' . $a2; } } } } } //$html .= $shipping_array[$ke].'<br />'; //echo 'sa:'.$shipping_array[$ke].'endsa'; if (strpos($shipping_array[$ke], '<!--shipping_goes_here-->') === false) { $htmla[] = $shipping_array[$ke] . '<br />'; } else { $wrapper = $shipping_array[$ke] . '<br />'; } } $vars = array('shipping' => $htmla, 'cart' => $cart); if (!class_exists('OPCrenderer')) { require JPATH_SITE . DS . 'components' . DS . 'com_onepage' . DS . 'helpers' . DS . 'renderer.php'; } $renderer = OPCrenderer::getInstance(); $htmlr = $renderer->fetch($renderer, 'list_shipping_methods.tpl', $vars); if (empty($htmlr)) { $html .= implode('', $htmla); } else { $html .= $htmlr; } // create html: } } $html = str_replace('<!--shipping_goes_here-->', $html, $wrapper); if (strpos($html, 'checked') === false) { $html = $this->str_replace_once('"virtuemart_shipmentmethod_id"', '"virtuemart_shipmentmethod_id" checked="checked"', $html); } include JPATH_SITE . DS . 'components' . DS . 'com_onepage' . DS . 'helpers' . DS . 'third_party' . DS . 'third_party_clear_shipping.php'; // clear the settings: $cart->virtuemart_shipmentmethod_id = 0; $cart->virtuemart_paymentmethod_id = 0; $cart->automaticSelectedShipment = false; $cart->automaticSelectedPayment = false; $cart->setCartIntoSession(); if (method_exists($calc, 'setCartPrices')) { $calc->setCartPrices(array()); } return $html; }
public static function getJavascript(&$ref, &$OPCloader, $isexpress = false, $action_url = 'index.php', $option = 'com_virtuemart', $task = 'checkout') { //include (JPATH_OPC.DS.'ext'.DS.'extension.php'); require_once JPATH_SITE . DS . 'components' . DS . 'com_onepage' . DS . 'helpers' . DS . 'ajaxhelper.php'; $bhelper = new basketHelper(); //$extHelper = new opExtension(); //$extHelper->runExt('before'); include JPATH_OPC . DS . 'config' . DS . 'onepage.cfg.php'; // $ccjs = "\n".' var op_general_error = "'.OPCmini::slash(JText->_('CONTACT_FORM_NC')).'"; '."\n"; // $ccjs .= ' var op_cca = "~'; // COM_VIRTUEMART_ORDER_PRINT_PAYMENT $logged = OPCloader::logged($ref->cart); $user = JFactory::getUser(); if ($user->id > 0) { $logged_in_joomla = true; } else { $logged_in_joomla = false; } // check if klarna enabled // let's include klarna from loadScriptAndCss: $db = JFactory::getDBO(); $q = "select published from #__virtuemart_paymentmethods where payment_element = 'klarna' limit 0,1"; $db->setQuery($q); $enabled = $db->loadResult(); if (!empty($enabled)) { if (file_exists(JPATH_ROOT . DS . 'plugins' . DS . 'vmpayment' . DS . 'klarna' . DS . 'klarna.php')) { $path = 'plugins/vmpayment/klarna'; } else { $path = 'plugins/vmpayment'; } $assetsPath = $path . '/klarna/assets/'; JHTMLOPC::stylesheet('style.css', $assetsPath . 'css/', FALSE); JHTMLOPC::stylesheet('klarna.css', $assetsPath . 'css/', FALSE); JHTMLOPC::script('klarna_general.js', $assetsPath . 'js/', FALSE); JHTMLOPC::script('klarnaConsentNew.js', 'http://static.klarna.com/external/js/', FALSE); $document = JFactory::getDocument(); $document->addScriptDeclaration(' klarna.ajaxPath = "' . JURI::root() . '/index.php?option=com_virtuemart&view=plugin&vmtype=vmpayment&name=klarna"; '); } // end // end $extJs = " var shipconf = []; var payconf = []; " . "\n"; $virtuemart_currency_id = OPCloader::getCurrency($ref->cart); $extJs .= " var virtuemart_currency_id = '" . $virtuemart_currency_id . "'; "; //testing: if (!empty($opc_payment_refresh)) { $extJs .= " var opc_payment_refresh = true; "; } else { $extJs .= " var opc_payment_refresh = false; "; } if (!empty($opc_dynamic_lines)) { $extJs .= " var opc_dynamic_lines = true; "; } else { $extJs .= " var opc_dynamic_lines = false; "; } $extJs .= " var opc_default_option = '" . $option . "'; "; $extJs .= " var opc_default_task = '" . $task . "'; "; if ($opc_debug) { $extJs .= " var opc_debug = true; "; } else { $extJs .= " var opc_debug = false; "; } if (!empty($op_customer_shipping)) { $extJs .= " var op_customer_shipping = true; "; } else { $extJs .= " var op_customer_shipping = false; "; } if ($opc_async) { $extJs .= " var opc_async = true; "; } else { $extJs .= " var opc_async = false; "; } if ($payment_inside) { $extJs .= " var op_payment_inside = true; "; } else { $extJs .= " var op_payment_inside = false; "; } $extJs .= " var op_logged_in = '" . $logged . "'; "; $extJs .= " var op_last_payment_extra = null; "; $extJs .= " var op_logged_in_joomla = '" . $logged_in_joomla . "'; "; $extJs .= ' var op_shipping_div = null; '; $extJs .= ' var op_lastq = ""; '; $extJs .= ' var op_lastcountry = null; var op_lastcountryst = null; '; $extJs .= ' var op_isrunning = false; '; $extJs .= ' var COM_ONEPAGE_CLICK_HERE_TO_REFRESH_SHIPPING = "' . OPCloader::slash(OPCLang::_('COM_ONEPAGE_CLICK_HERE_TO_REFRESH_SHIPPING')) . '"; '; $extJs .= ' var COM_VIRTUEMART_LIST_EMPTY_OPTION = "' . OPCloader::slash(OPCLang::_('COM_VIRTUEMART_LIST_EMPTY_OPTION')) . '"; '; $extJs .= ' var COM_ONEPAGE_PLEASE_WAIT_LOADING = "' . OPCloader::slash(OPCLang::_('COM_ONEPAGE_PLEASE_WAIT_LOADING')) . '"; '; $theme = JRequest::getVar('opc_theme', ''); $theme = preg_replace("/[^a-zA-Z0-9_]/", "", $theme); if (empty($theme)) { $theme = $selected_template; } $extJs .= ' var opc_theme = "' . OPCloader::slash($theme) . '"; '; $extJs .= ' var NO_PAYMENT_ERROR = "' . OPCloader::slash(JText::_('COM_VIRTUEMART_CART_SELECT_PAYMENT')) . '"; '; $extJs .= ' var JERROR_AN_ERROR_HAS_OCCURRED = "' . OPCloader::slash(OPCLang::_('JERROR_AN_ERROR_HAS_OCCURRED')) . '"; '; $extJs .= ' var COM_ONEPAGE_PLEASE_WAIT = "' . OPCloader::slash(OPCLang::_('COM_ONEPAGE_PLEASE_WAIT')) . '"; '; //$extJs .= ' var USERNAMESYNTAXERROR = "'.JText::_('', true).'"; '; if (!empty($op_usernameisemail)) { $extJs .= ' var op_usernameisemail = true; '; } else { $extJs .= ' var op_usernameisemail = false; '; } $url = OPCloader::getURL(true); if (!empty($op_loader)) { $extJs .= ' var op_loader = true; '; } else { $extJs .= ' var op_loader = false; '; } $extJs .= ' var op_loader_img = "' . $url . 'media/system/images/mootree_loader.gif";'; if (!empty($double_email)) { if (!defined('op_doublemail_js')) { JHTMLOPC::script('doublemail.js', 'components/com_onepage/ext/doublemail/js/', false); define('op_doublemail_js', '1'); } } if (!empty($onlyd)) { $extJs .= ' var op_onlydownloadable = "1"; '; } else { $extJs .= ' var op_onlydownloadable = ""; '; } if (!empty($op_last_field)) { $extJs .= ' var op_last_field = true; '; } else { $extJs .= ' var op_last_field = false; '; } $extJs .= ' var op_refresh_html = ""; '; if (!empty($no_alerts)) { $extJs .= ' var no_alerts = true; '; } else { $extJs .= ' var no_alerts = false; '; } require_once JPATH_ROOT . DS . 'components' . DS . 'com_onepage' . DS . 'helpers' . DS . 'mini.php'; $extJs .= " var username_error = '" . OPCmini::slash(OPCLang::sprintf('COM_VIRTUEMART_STRING_ERROR_NOT_UNIQUE_NAME', OPCLang::_('COM_VIRTUEMART_USERNAME'))) . "';"; $extJs .= " var email_error = '" . OPCmini::slash(OPCLang::sprintf('COM_ONEPAGE_EMAIL_ALREADY_EXISTS', OPCLang::_('COM_VIRTUEMART_USER_FORM_EMAIL'))) . "';"; if (!empty($opc_no_duplicit_username)) { $extJs .= ' var opc_no_duplicit_username = true; '; } else { $extJs .= ' var opc_no_duplicit_username = false; '; } if (!empty($opc_no_duplicit_email)) { $extJs .= ' var opc_no_duplicit_email = true; '; } else { $extJs .= ' var opc_no_duplicit_email = false; '; } $extJs .= ' var last_username_check = true; '; $extJs .= ' var last_email_check = true; '; // stAn mod for OPC2 /* if (!empty($op_delay_ship)) $extJs .= " var op_delay = true; "; else $extJs .= " var op_delay = false; "; */ if (!empty($op_delay_ship)) { $extJs .= " var op_delay = false; "; } else { $extJs .= " var op_delay = false; "; } if (empty($last_ship2_field)) { $last_ship2_field = ''; } if (empty($last_ship_field)) { $last_ship_field = ''; } $extJs .= " var op_last1 = '" . OPCmini::slash($last_ship_field) . "'; "; $extJs .= " var op_last2 = '" . OPCmini::slash($last_ship2_field) . "'; "; $url = JURI::root(true); if (empty($url)) { $url = '/'; } if (substr($url, strlen($url) - 1) !== '/') { $url .= '/'; } $actionurl = $url . 'index.php'; if (version_compare(JVERSION, '2.5.0', 'ge')) { $extJs .= " var op_com_user = '******'; "; $extJs .= " var op_com_user_task = 'user.login'; "; $extJs .= " var op_com_user_action = '" . $actionurl . "?option=com_users&task=user.login&controller=user'; "; $extJs .= " var op_com_user_action_logout = '" . $actionurl . "?option=com_users&task=user.logout&controller=user'; "; $extJs .= " var op_com_user_task_logout = 'user.logout'; "; } else { if (version_compare(JVERSION, '1.7.0', 'ge')) { $extJs .= " var op_com_user = '******'; "; $extJs .= " var op_com_user_task = 'user.login'; "; $extJs .= " var op_com_user_action = '" . $actionurl . "?option=com_users&task=user.login&controller=user'; "; $extJs .= " var op_com_user_action_logout = '" . $actionurl . "?option=com_users&task=user.logout&controller=user'; "; $extJs .= " var op_com_user_task_logout = 'user.logout'; "; // Joomla! 1.7 code here } elseif (version_compare(JVERSION, '1.6.0', 'ge')) { // Joomla! 1.6 code here } else { $extJs .= " var op_com_user = '******'; "; $extJs .= " var op_com_user_task = 'login'; "; $extJs .= " var op_com_user_action = '" . $actionurl . "?option=com_user&task=login'; "; $extJs .= " var op_com_user_action_logout = '" . $actionurl . "?option=com_user&task=logout'; "; $extJs .= " var op_com_user_task_logout = 'logout'; "; } } $op_autosubmit = false; //$extHelper->runExt('autosubmit', '', '', $op_autosubmit); $extJs .= " var op_userfields_named = new Array(); "; if (!empty(OPCloader::$fields_names)) { foreach (OPCloader::$fields_names as $key => $val) { $extJs .= ' op_userfields_named[\'' . OPCmini::slash($key) . '\'] = \'' . OPCmini::slash($val) . '\'; '; } } $extJs .= " "; // let's create all fields here if (!class_exists('VirtueMartCart')) { require JPATH_VM_SITE . DS . 'helpers' . DS . 'cart.php'; } if (!isset($ref->cart)) { $ref->cart = $cart = VirtueMartCart::getCart(); } $extJs .= " var op_userfields = new Array("; // updated on VM2.0.26D: /* if (!isset($ref->cart->STaddress)) $ref->cart->STaddress = array(); if (!isset($ref->cart->BTaddress)) $ref->cart->BTaddress = array(); $ref->cart->prepareAddressDataInCart('BTaddress', 0); $ref->cart->prepareAddressDataInCart('STaddress', 0); //$ref->cart->prepareAddressDataInCart('BT', 0); //$ref->cart->prepareAddressDataInCart('ST', 0); */ //$userFieldsST = $ref->cart->STaddress; $userFieldsST = OPCloader::getUserFields('ST', $ref->cart); //$userFieldsBT = $ref->cart->BTaddress; $userFieldsBT = OPCloader::getUserFields('BT', $ref->cart); $fx = array(); $ignore = array('delimiter', 'hidden'); foreach ($userFieldsBT['fields'] as $k2 => $v2) { if (in_array($v2['type'], $ignore)) { continue; } $fx[] = '"' . OPCmini::slash($v2['name'], false) . '"'; } foreach ($userFieldsST['fields'] as $k => $v) { if (in_array($v['type'], $ignore)) { continue; } $fx[] = '"' . OPCmini::slash($v['name'], false) . '"'; } $fx2 = implode(',', $fx); $extJs .= $fx2 . '); '; //else //$extJs .= " var op_userfields = new Array(); "; $extJs .= ' var op_firstrun = true; '; //$extHelper->runExt('addjavascript', '', '', $extJs); if (!empty($business_fields)) { $business_fields2 = array(); foreach ($business_fields as $k => $line) { $business_fields2[$k] = "'" . $line . "'"; } $newa = implode(',', $business_fields2); $extJs .= ' var business_fields = [' . $newa . ']; '; } else { $extJs .= ' var business_fields = new Array(); '; } if (!empty($custom_rendering_fields)) { $custom_rendering_fields2 = array(); foreach ($custom_rendering_fields as $k => $line) { $custom_rendering_fields2[$k] = "'" . $line . "'"; } $newa = implode(',', $custom_rendering_fields2); $extJs .= ' var custom_rendering_fields = new Array(' . $newa . '); '; } else { $extJs .= ' var custom_rendering_fields = new Array(); '; } //shipping_obligatory_fields if (!empty($shipping_obligatory_fields)) { $shipping_obligatory_fields2 = array(); foreach ($shipping_obligatory_fields as $k => $line) { $shipping_obligatory_fields2[$k] = "'" . $line . "'"; } $newa = implode(',', $shipping_obligatory_fields2); $extJs .= ' var shipping_obligatory_fields = new Array(' . $newa . '); '; } else { $extJs .= ' var shipping_obligatory_fields = new Array(); '; } $extJs .= 'var shippingOpenStatus = false; '; if (empty($op_autosubmit)) { $extJs .= " var op_autosubmit = false; "; } else { $extJs .= " var op_autosubmit = true; "; } $db = JFactory::getDBO(); $q = 'select * from #__virtuemart_vendors where virtuemart_vendor_id = 1 limit 0,1 '; $db->setQuery($q); $res = $db->loadAssoc(); if (!empty($res)) { extract($res); } //VmConfig::get('useSSL',0) $mainframe = Jfactory::getApplication(); $vendorId = JRequest::getInt('vendorid', 1); /* table vm_vendor */ if (!class_exists('VirtueMartCart')) { require JPATH_VM_SITE . DS . 'helpers' . DS . 'cart.php'; } if (!class_exists('CurrencyDisplay')) { require JPATH_VM_ADMINISTRATOR . DS . 'helpers' . DS . 'currencydisplay.php'; } $virtuemart_currency_id = OPCloader::getCurrency($ref->cart); if (empty($ref->cart)) { $ref->cart = $cart = VirtueMartCart::getCart(); } if (!empty($virtuemart_currency_id)) { $c = CurrencyDisplay::getInstance($virtuemart_currency_id); } else { $c = CurrencyDisplay::getInstance($ref->cart->paymentCurrency); $virtuemart_currency_id = $ref->cart->paymentCurrency; } if (!method_exists($c, 'getNbrDecimals')) { $db = JFactory::getDBO(); $q = 'select * from #__virtuemart_currencies where virtuemart_currency_id = ' . (int) $virtuemart_currency_id . ' limit 0,1'; $db->setQuery($q); $c2 = $db->loadObject(); if (empty($c2)) { $c2 = new stdClass(); $c2->currency_symbol = '$'; $c2->currency_decimal_place = 2; $c2->currency_decimal_symbol = '.'; $c2->currency_thousands = ' '; $c2->currency_positive_style = '{number} {symbol}'; $c2->currency_negative_style = '{sign}{number} {symbol}'; } // op_vendor_style = '1|€|2|.|\'|3|0'; $arr = array(); $arr[0] = '1'; $arr[1] = $c2->currency_symbol; $arr[2] = $c2->currency_decimal_place; $arr[3] = $c2->currency_decimal_symbol; $arr[4] = $c2->currency_thousands; // for now $arr[5] = '3'; $arr[6] = '8'; $arr[7] = '8'; $arr[8] = $c2->currency_positive_style; $arr[9] = $c2->currency_negative_style; $vendor_currency_display_style = implode('|', $arr); } else { // op_vendor_style = '1|€|2|.|\'|3|0'; $arr = array(); $arr[0] = '1'; $arr[1] = $c->getSymbol(); $arr[2] = $c->getNbrDecimals(); $arr[3] = $c->getDecimalSymbol(); $arr[4] = $c->getThousandsSeperator(); // for now $arr[5] = '3'; $arr[6] = '8'; $arr[7] = '8'; $arr[8] = $c->getPositiveFormat(); $arr[9] = $c->getNegativeFormat(); $vendor_currency_display_style = implode('|', $arr); } //$arr[2] = $c-> $extJs .= " var op_saved_shipping = null; var op_saved_payment = null; var op_saved_shipping_vmid = '';"; $cs = str_replace("'", '\\\'', $vendor_currency_display_style); $extJs .= " var op_vendor_style = '" . $cs . "'; "; $extJs .= " var op_currency_id = '" . $virtuemart_currency_id . "'; "; $extJs .= ' op_override_basket = true; '; $extJs .= ' op_basket_override = true; '; /* else { $extJs .= ' op_override_basket = false; '; $extJs .= ' op_basket_override = false; '; } */ // if ($onlyindex) return JURI::root(true).'/index.php'; if (empty($action_url)) { $action_url = JURI::root(true) . '/index.php?option=com_virtuemart&view=opc&controller=opc&task=checkout&nosef=1'; } $action_url = html_entity_decode($action_url); $lang = JFactory::getLanguage(); $locales = $lang->getLocale(); if (!empty($locales[4])) { $action_url .= '&lang=' . $locales[4]; } $extJs .= " var opc_action_url = '" . $action_url . "'; "; // google adwrods tracking code here if (!empty($adwords_enabled[0])) { $extJs .= " var acode = '1'; "; } else { $extJs .= " var acode = '0'; "; } $lang = JRequest::getVar('lang'); if (ctype_alnum($lang)) { $extJs .= " var op_lang = '" . $lang . "'; "; } else { $extJs .= " var op_lang = ''; "; } $ur = JURI::root(true); if (substr($ur, strlen($ur) - 1) != '/') { $ur .= '/'; } //$ur .= basename($_SERVER['PHP_SELF']); $mm_action_url = $ur; $isVm202 = false; if (!class_exists('VirtueMartModelShopperGroup')) { if (file_exists(JPATH_VM_ADMINISTRATOR . DS . 'models' . DS . 'shoppergroup.php')) { require JPATH_VM_ADMINISTRATOR . DS . 'models' . DS . 'shoppergroup.php'; } else { $isVm202 = true; } } if (!method_exists('VirtueMartModelShopperGroup', 'appendShopperGroups')) { $isVm202 = true; } if (!$isVm202) { $extJs .= " var op_securl = '" . $ur . "index.php?option=com_onepage'; "; } else { $extJs .= " var op_securl = '" . $ur . "index.php?option=com_virtuemart'; "; } $extJs .= " var pay_btn = new Array(); "; $extJs .= " var pay_msg = new Array(); "; $extJs .= " pay_msg['default'] = ''; "; $extJs .= " pay_btn['default'] = '" . OPCmini::slash(OPCLang::_('COM_VIRTUEMART_ORDER_CONFIRM_MNU')) . "'; "; $extJs .= " var op_timeout = 0; "; if (!empty($adwords_timeout)) { $extJs .= " var op_maxtimeout = " . $adwords_timeout . "; "; } else { $extJs .= " var op_maxtimeout = 3000; "; } $extJs .= " var op_semafor = false; "; if (!empty($op_sum_tax)) { $extJs .= " var op_sum_tax = true; "; } else { $extJs .= " var op_sum_tax = false; "; } if (defined("_MIN_POV_REACHED") && constant("_MIN_POV_REACHED") == '1') { $extJs .= " var op_min_pov_reached = true; "; } else { $extJs .= " var op_min_pov_reached = false; "; } // this setting says if to show discountAmout together with the classic discount if (!empty($payment_discount_before)) { $extJs .= " var payment_discount_before = true; "; } else { $extJs .= " var payment_discount_before = false; "; } if (empty($hidep) || !empty($payment_inside)) { $extJs .= " var op_payment_disabling_disabled = true; "; } else { $extJs .= " var op_payment_disabling_disabled = false; "; } //$extJs .= " var op_show_prices_including_tax = '".$auth["show_price_including_tax"]."'; "; $extJs .= " var op_show_prices_including_tax = '1'; "; $extJs .= " var never_show_total = "; if (isset($never_show_total) && $never_show_total == true) { $extJs .= ' true; ' . "\n"; } else { $extJs .= ' false; ' . "\n"; } $extJs .= " var op_no_jscheck = "; // modified for OPC2 if (!empty($no_jscheck)) { $extJs .= " true; "; } else { $extJs .= " true; "; } $extJs .= " var op_no_taxes_show = "; if (isset($no_taxes_show) && $no_taxes_show == true) { $extJs .= ' true; ' . "\n"; } else { $extJs .= ' false; ' . "\n"; } $extJs .= " var op_no_taxes = "; if (isset($no_taxes) && $no_taxes == true) { $extJs .= ' true; ' . "\n"; } else { $extJs .= ' false; ' . "\n"; } $selectl = OPCLang::_('COM_VIRTUEMART_LIST_EMPTY_OPTION'); $extJs .= " var op_lang_select = '(" . $selectl . ")'; "; //if ((ps_checkout::tax_based_on_vendor_address()) && ($auth['show_price_including_tax']) && ((!isset($always_show_tax) || ($always_show_tax !== true)))) //$extJs .= " var op_dont_show_taxes = '1'; "; //else $extJs .= " var op_dont_show_taxes = '0'; " . "\n"; $extJs .= ' var op_coupon_amount = "0"; ' . "\n"; $extJs .= ' var op_shipping_txt = "' . OPCmini::slash(OPCLang::_('COM_VIRTUEMART_ORDER_PRINT_SHIPPING_PRICE_LBL'), false) . '"; ' . "\n"; $extJs .= ' var op_shipping_tax_txt = "' . OPCmini::slash(OPCLang::_('COM_VIRTUEMART_ORDER_PRINT_SHIPPING_TAX'), false) . '"; ' . "\n"; $country_ship = array(); if (false) { if (isset($hidep)) { foreach ($hidep as &$h) { $h .= ',' . $payments_to_hide . ','; $h = str_replace(' ', '', $h); $h = ',' . $h . ','; } } } // found shipping methods // $sarr = $bhelper->getShippingArray(); if (false) { foreach ($sarr as $k => $ship) { if (isset($hidep[$ship->virtuemart_shipmentmethod_id])) { $extJs .= " payconf['" . $k . "']=\"," . $hidep[$k] . ",\"; "; } else { $extJs .= " payconf['" . $k . "']=\",\"; "; } } } // old code for standard shipping if (!empty($rows)) { foreach ($rows as $r) { $id = $r['shipping_rate_id']; $cs = $r['shipping_rate_country']; $car = $r['shipping_rate_carrier_id']; $k = explode(';', $cs, 1000); foreach ($k as $kk) { if ($kk != '') { $krajiny[] = $kk; if (!isset($country_ship[$id])) { $country_ship[$id] = array(); } $country_ship[$id][$kk] = $kk; } } $extJs .= "shipconf[" . $id . "]=\"" . $cs . '"; '; } } // end of old code for standard shipping // country_ship description: // country_ship[ship_id][country] = country // country_ship will be used for default shipping method for selected default shipping country // global variables: ordertotal, currency symbol, text for order total // echo $incship; $incship = OPCLang::_('COM_ONEPAGE_ORDER_TOTAL_INCL_SHIPPING'); if (empty($incship)) { $incship = OPCLang::_('COM_VIRTUEMART_ORDER_LIST_TOTAL'); } $incship = OPCmini::slash($incship); if (!empty($order_total)) { $extJs .= " var op_ordertotal = " . $order_total . "; "; } else { $extJs .= " var op_ordertotal = 0.0; "; } $extJs .= " var op_textinclship = '" . OPCmini::slash(OPCLang::_('COM_VIRTUEMART_CART_TOTAL')) . "'; "; $extJs .= " var op_currency = '" . OPCmini::slash($c->getSymbol()) . "'; "; if (!empty($weight_total)) { $extJs .= " var op_weight = " . $weight_total . "; "; } else { $extJs .= " var op_weight = 0.00; "; } if (!empty($vars['zone_qty'])) { $extJs .= " var op_zone_qty = " . $vars['zone_qty'] . "; "; } else { $extJs .= " var op_zone_qty = 0.00; "; } if (!empty($grandSubtotal)) { $extJs .= " var op_grand_subtotal = " . $grandSubtotal . "; "; } else { $extJs .= " var op_grand_subtotal = 0.00; "; } $extJs .= ' var op_subtotal_txt = "' . OPCmini::slash(OPCLang::_('COM_VIRTUEMART_CART_SUBTOTAL'), false) . '"; '; $extJs .= ' var op_tax_txt = "' . OPCmini::slash(OPCLang::_('COM_VIRTUEMART_ORDER_PRINT_TOTAL_TAX'), false) . '"; '; $op_disable_shipping = OPCloader::getShippingEnabled($ref->cart); if (!empty($op_disable_shipping)) { $nos = 'true'; } else { $nos = 'false'; } $extJs .= "var op_noshipping = " . $nos . "; "; $extJs .= "var op_autosubmit = false; "; // $extJs .= " var op_tok = '".$_SESSION['__default']['session.token']."'; "; // array of avaiable country codes if (!empty($krajiny)) { $krajiny = array_unique($krajiny); } $rp_js = ''; $extJs .= $rp_js . "\n"; $ship_country_change_msg = OPCLang::_('COM_ONEPAGE_SHIP_COUNTRY_CHANGED'); $extJs .= ' var shipChangeCountry = "' . OPCmini::slash($ship_country_change_msg, false) . '"; ' . "\n"; $extJs .= ' var opc_free_text = "' . OPCmini::slash(OPCLang::_('COM_ONEPAGE_FREE', false)) . '"; ' . "\n"; if (!empty($use_free_text)) { $extJs .= " var use_free_text = true; " . "\n"; } else { $extJs .= " var use_free_text = false; " . "\n"; } $ship_country_is_invalid_msg = OPCLang::_('COM_ONEPAGE_SHIP_COUNTRY_INVALID'); $extJs .= ' var noshiptocmsg = "' . OPCmini::slash($ship_country_is_invalid_msg, false) . '"; ' . "\n"; $extJs .= " var default_ship = null; " . "\n"; $extJs .= ' var agreedmsg = "' . OPCmini::slash(OPCLang::_('COM_VIRTUEMART_USER_FORM_BILLTO_TOS_NO', false)) . '"; ' . "\n"; $extJs .= ' var op_continue_link = ""; ' . "\n"; if ($must_have_valid_vat) { $extJs .= "var op_vat_ok = 2; var vat_input_id = \"" . $vat_input_id . "\"; var vat_must_be_valid = true; " . "\n"; } $default_info_message = OPCLang::_('COM_ONEPAGE_PAYMENT_EXTRA_DEFAULT_INFO'); $extJs .= ' var payment_default_msg = "' . str_replace('"', '\\"', $default_info_message) . '"; ' . "\n"; $extJs .= ' var payment_button_def = "' . str_replace('"', '\\"', OPCLang::_('COM_VIRTUEMART_ORDER_CONFIRM_MNU')) . '"; ' . "\n"; if (empty($op_dontloadajax)) { $extJs .= ' var op_dontloadajax = false; '; } else { $extJs .= ' var op_dontloadajax = true; '; } $extJs .= ' var op_user_name_checked = false; '; $extJs .= ' var op_email_checked = false; '; // adds payment discount array //if (isset($pscript)) //$extJs .= $pscript; if (isset($payments_to_hide)) { $payments_to_hide = str_replace(' ', '', $payments_to_hide); } else { $payments_to_hide = ""; } // adds script to change text on the button if (isset($rp)) { $extJs .= $rp; } if (!(isset($vendor_name) && $vendor_name != '')) { $vendor_name = 'E-shop'; } $extJs .= ' var op_vendor_name = "' . OPCmini::slash($vendor_name, false) . '"; ' . "\n"; /* if (!isset($_SESSION['__default']['session.token'])) $_SESSION['__default']['session.token'] = md5(uniqid()); $next_order_id = $bhelper->getNextOrderId(); jimport( 'joomla.utilities.utility' ); if (method_exists('JUtility', 'getToken')) $token = JUtility::getToken(); else $token = JSession::getFormToken(); $token = md5($token); $g_order_id = $next_order_id."_".$token; $extJs .= ' var g_order_id = "'.$g_order_id.'"; '."\n"; */ $extJs .= ' var op_order_total = 0; ' . "\n"; $extJs .= ' var op_total_total = 0; ' . "\n"; $extJs .= ' var op_ship_total = 0; ' . "\n"; $extJs .= ' var op_tax_total = 0; ' . "\n"; if (empty($op_fix_ins)) { $extJs .= 'var op_fix_payment_vat = false; '; } $extJs .= ' var op_run_google = new Boolean('; if (!empty($g_analytics)) { $extJs .= 'true); '; } else { $extJs .= 'false); '; } if (!isset($pth_js)) { $pth_js = ''; } $extJs .= ' var op_always_show_tax = '; if (isset($always_show_tax) && $always_show_tax === true) { $extJs .= 'true; ' . "\n"; } else { $extJs .= 'false; ' . "\n"; } $extJs .= ' var op_always_show_all = '; if (isset($always_show_all) && $always_show_all === true) { $extJs .= 'true; ' . "\n"; } else { $extJs .= 'false; ' . "\n"; } $extJs .= ' var op_add_tax = '; if (isset($add_tax) && $add_tax === true) { $extJs .= 'true; '; } else { $extJs .= 'false; '; } $extJs .= ' var op_add_tax_to_shipping = '; if (isset($add_tax_to_shipping) && $add_tax_to_shipping === true) { $extJs .= 'true; ' . "\n"; } else { $extJs .= 'false; ' . "\n"; } $extJs .= ' var op_add_tax_to_shipping_problem = '; if (isset($add_tax_to_shipping_problem) && $add_tax_to_shipping_problem === true) { $extJs .= 'true; ' . "\n"; } else { $extJs .= 'false; ' . "\n"; } $extJs .= ' var op_no_decimals = '; if (isset($no_decimals) && $no_decimals === true) { $extJs .= 'true; ' . "\n"; } else { $extJs .= 'false; ' . "\n"; } $extJs .= ' var op_curr_after = '; if (isset($curr_after) && $curr_after === true) { $extJs .= 'true; ' . "\n"; } else { $extJs .= 'false; ' . "\n"; } if (empty($op_basket_subtotal_taxonly)) { $op_basket_subtotal_taxonly = '0.00'; } $extJs .= ' var op_basket_subtotal_items_tax_only = ' . $op_basket_subtotal_taxonly . '; '; /* can be send to js if needed: $op_basket_subtotal += $price["product_price"] * $cart[$i]["quantity"]; $op_basket_subtotal_withtax += ($price["product_price"] * $cart[$i]["quantity"])*($my_taxrate+1); $op_basket_subtotal_taxonly += ($price["product_price"] * $cart[$i]["quantity"])*($my_taxrate); */ $extJs .= ' var op_show_only_total = '; if (isset($show_only_total) && $show_only_total === true) { $extJs .= 'true; ' . "\n"; } else { $extJs .= 'false; ' . "\n"; } $extJs .= ' var op_show_andrea_view = '; if (isset($show_andrea_view) && $show_andrea_view === true) { $extJs .= 'true; ' . "\n"; } else { $extJs .= 'false; ' . "\n"; } $extJs .= ' var op_detected_tax_rate = "0"; '; $extJs .= ' var op_custom_tax_rate = '; if (empty($custom_tax_rate)) { $custom_tax_rate = '0.00'; } $custom_tax_rate = str_replace(',', '.', $custom_tax_rate); $custom_tax_rate = str_replace(' ', '', $custom_tax_rate); if (!empty($custom_tax_rate) && is_numeric($custom_tax_rate)) { $extJs .= '"' . $custom_tax_rate . '"; ' . "\n"; } else { $extJs .= '""; ' . "\n"; } $extJs .= ' var op_coupon_discount_txt = "' . OPCmini::slash(OPCLang::_('COM_VIRTUEMART_COUPON_DISCOUNT'), false) . '"; ' . "\n"; $extJs .= ' var op_other_discount_txt = "' . OPCmini::slash(OPCLang::_('COM_ONEPAGE_OTHER_DISCOUNT'), false) . '"; ' . "\n"; if (!empty($shipping_inside_basket)) { $extJs .= " var op_shipping_inside_basket = true; "; } else { $extJs .= " var op_shipping_inside_basket = false; "; } if (!empty($payment_inside_basket) && empty($isexpress)) { $extJs .= " var op_payment_inside_basket = true; "; } else { $extJs .= " var op_payment_inside_basket = false; "; } $extJs .= " var op_disabled_payments = \"{$pth_js}\"; \n"; $extJs .= "var op_payment_discount = 0; \n var op_ship_cost = 0; \n var pdisc = []; " . "\n"; $extJs .= 'var op_payment_fee_txt = "' . str_replace('"', '\\"', OPCLang::_('COM_VIRTUEMART_ORDER_PRINT_PAYMENT')) . '"; ' . "\n"; // fee $extJs .= 'var op_payment_discount_txt = "' . str_replace('"', '\\"', OPCLang::_('COM_VIRTUEMART_CART_SUBTOTAL_DISCOUNT_AMOUNT')) . '"; ' . "\n"; // discount //$rp_js = ' var pay_msg = []; var pay_btn = []; '; // paypal: if (false && $paypalActive) { $extJs .= ' var op_paypal_id = "' . ps_paypal_api::getPaymentMethodId() . '"; '; } else { $extJs .= ' var op_paypal_id = "x"; '; } if (false && $paypalActive && defined('PAYPAL_API_DIRECT_PAYMENT_ON') && (bool) PAYPAL_API_DIRECT_PAYMENT_ON) { $extJs .= ' var op_paypal_direct = true; '; } else { $extJs .= ' var op_paypal_direct = false; '; } $extJs .= ' var op_general_error = ' . "'" . OPCmini::slash(OPCLang::_('COM_VIRTUEMART_USER_FORM_MISSING_REQUIRED')) . "';"; $extJs .= ' var op_email_error = ' . "'" . OPCmini::slash(OPCLang::_('COM_VIRTUEMART_ENTER_A_VALID_EMAIL_ADDRESS')) . "';"; $err = OPCJavascript::getPwdError(); $extJs .= ' var op_pwderror = ' . "'" . OPCmini::slash($err) . "';\n"; if ($double_email) { if (!OPCloader::logged($ref->cart)) { $extJs .= ' callSubmitFunct.push("Onepage.doubleEmailCheck"); '; } } if (!empty($disable_payment_per_shipping)) { $extJs .= ' addOpcTriggerer("callAfterShippingSelect", "Onepage.refreshPayment()"); '; } if (empty($no_coupon_ajax)) { $extJs .= 'jQuery(document).ready(function() { jQuery(\'#userForm\').bind(\'submit\',function(){ if (userForm.coupon_code != null) if (userForm.coupon_code.value != null) { new_coupon = Onepage.op_escape(userForm.coupon_code.value); if (typeof Onepage != \'undefined\') if (typeof Onepage.op_runSS != \'undefined\') { Onepage.op_runSS(this, false, true, \'process_coupon&new_coupon=\'+new_coupon); return false; } } }); });'; } //callAfterShippingSelect.push('hideShipto()'); $inside = JRequest::getCmd('insideiframe', ''); $js = ''; if (!empty($inside)) { $js = "\n" . ' if (typeof jQuery != \'undefined\' && (jQuery != null)) { jQuery(document).ready(function() { if (typeof Onepage.op_runSS == \'undefined\') return; '; if (!empty($inside)) { $js .= "\n" . ' op_resizeIframe(); ' . "\n"; } $js .= ' }); } else { if ((typeof window != \'undefined\') && (typeof window.addEvent != \'undefined\')) { window.addEvent(\'domready\', function() { '; if (!empty($inside)) { $js .= ' op_resizeIframe(); '; } $js .= ' }); } }'; } $document = JFactory::getDocument(); $raw_js = "\n" . $extJs . "\n" . $js . "\n"; $src = '<script>' . "\n" . '//<![CDATA[' . $raw_js . '//]]> ' . "\n" . '</script>'; $app = JFactory::getApplication(); $jtouch = $app->getUserStateFromRequest('jtpl', 'jtpl', -1, 'int'); if ($jtouch > 0) { $opc_php_js2 = true; } // stAn, updated on 2.0.218 // stan, to support gk gavick mobile themes we had to omit the type if (empty($opc_php_js2)) { $document->addCustomTag($src); return; } $js_dir = JPATH_CACHE . DS . 'com_onepage'; $lang = JFactory::getLanguage()->getTag(); $js_file = 'opc_dynamic_' . $lang . '_' . md5($raw_js) . '.js'; $js_path = $js_dir . DS . $js_file; $add = true; jimport('joomla.filesystem.folder'); jimport('joomla.filesystem.file'); if (!file_exists($js_dir)) { if (JFolder::create($js_dir) === false) { $add = true; } } if (!file_exists($js_path)) { if (JFile::write($js_path, $raw_js) !== false) { JHTMLOPC::script($js_file, 'cache/com_onepage/'); return; } else { $add = true; } } if (!empty($opc_php_js2)) { if (file_exists($js_path)) { JHTMLOPC::script($js_file, 'cache/com_onepage/'); return; } } if ($add) { $document->addCustomTag($src); } //echo $src; //$document->addCustomTag('<script type="text/javascript">'."\n".'//<![CDATA[ '."\n".$extJs."\n".$js."\n".'//]]> '."\n".'</script>'); return; }