function getSTfields(&$obj, $unlg = false, $no_wrapper = false, $dc = '') { static $isUpdated; include JPATH_ROOT . DS . 'components' . DS . 'com_onepage' . DS . 'config' . DS . 'onepage.cfg.php'; if (OPCloader::logged($obj->cart) && empty($unlg)) { return $this->getUserInfoST($obj); } if (!class_exists('VirtueMartCart')) { require JPATH_VM_SITE . DS . 'helpers' . DS . 'cart.php'; } if (!empty($obj->cart)) { $cart =& $obj->cart; } else { $cart = VirtueMartCart::getCart(); } if (!empty($dc)) { $default_shipping_country = $dc; } else { $default_shipping_country = OPCloader::getDefaultCountry($cart); } if ($cart->ST === 0) { if (isset($cart->savedST)) { $cart->ST = $cart->savedST; if (isset($cart->ST['shipto_virtuemart_country_id'])) { $default_shipping_country = $cart->ST['virtuemart_country_id']; } } } $type = 'ST'; $this->address_type = 'ST'; // for unlogged // for unlogged $virtuemart_userinfo_id = 0; //$this->virtuemart_userinfo_id = 0; $new = 1; if (!empty($unlg)) { $new = false; } $fieldtype = $type . 'address'; $savedST = OPCloader::copyAddress($cart->ST); if (!empty($cart->ST) && count($cart->ST) > 2) { $new = false; } if (method_exists($cart, 'prepareAddressDataInCart')) { $cart->prepareAddressDataInCart($type, $new); } if (method_exists($cart, 'prepareAddressFieldsInCart')) { $cart->prepareAddressFieldsInCart(); } OPCloader::restoreDataInCart($cart->ST, $savedST); OPCloader::setRegType(); $op_disable_shipto = OPCloader::getShiptoEnabled($cart); if (!class_exists('VirtuemartModelUserfields')) { require JPATH_VM_ADMINISTRATOR . DS . 'models' . DS . 'userfields.php'; } $corefields = VirtueMartModelUserfields::getCoreFields(); $userFields = $cart->{$fieldtype}; //foreach ($corefields as $f) if (!empty($userFields['fields'])) { foreach ($userFields['fields'] as $key => $uf) { OPCloader::$fields_names['shipto_' . $key] = $userFields['fields'][$key]['title']; $userFields['fields'][$key]['formcode'] = str_replace('vm-chzn-select', '', $userFields['fields'][$key]['formcode']); if (!empty($corefields)) { foreach ($corefields as $k => $f) { if ($f == $uf['name']) { unset($userFields['fields'][$key]); unset($corefields[$k]); } } } if (empty($custom_rendering_fields)) { $custom_rendering_fields = array(); } if (in_array($uf['name'], $custom_rendering_fields)) { unset($userFields['fields'][$key]); continue; } $userFields['fields'][$key]['formcode'] = str_replace('class="virtuemart_country_id required"', 'class="virtuemart_country_id"', $userFields['fields'][$key]['formcode']); $userFields['fields'][$key]['formcode'] = str_replace('required>', '', $userFields['fields'][$key]['formcode']); $userFields['fields'][$key]['formcode'] = str_replace(' required ', '', $userFields['fields'][$key]['formcode']); $userFields['fields'][$key]['formcode'] = str_replace('required"', '"', $userFields['fields'][$key]['formcode']); if ($key == 'address_type_name') { $userFields['fields'][$key]['formcode'] = str_replace('Shipment', JText::_('COM_VIRTUEMART_SHOPPER_FORM_SHIPTO_LBL'), $userFields['fields'][$key]['formcode']); } if (!empty($userFields['fields'][$key]['required'])) { $userFields['fields'][$key]['required'] = false; } if (!empty($shipping_obligatory_fields)) { if (in_array($key, $shipping_obligatory_fields)) { $userFields['fields'][$key]['required'] = true; } } // let's add a default address for ST section as well: if ($key == 'virtuemart_country_id') { if (empty($unlg) || !empty($default_shipping_country)) { $userFields['fields'][$key]['formcode'] = str_replace('selected="selected"', '', $userFields['fields'][$key]['formcode']); $search = 'value="' . $default_shipping_country . '"'; $replace = ' value="' . $default_shipping_country . '" selected="selected" '; $userFields['fields'][$key]['formcode'] = str_replace($search, $replace, $userFields['fields'][$key]['formcode']); } } if ($key == 'virtuemart_country_id') { $userFields['fields'][$key]['formcode'] = str_replace('name=', ' autocomplete="off" name=', $userFields['fields'][$key]['formcode']); } //if (false) if (isset($userFields['fields'][$key])) { if ($key == 'virtuemart_state_id') { if (!empty($cart->ST['virtuemart_country_id'])) { $c = $cart->ST['virtuemart_country_id']; } else { $c = $default_shipping_country; } if (empty($c)) { $vendor = OPCloader::getVendorInfo($cart); $c = $vendor['virtuemart_country_id']; } $html = $this->getStateHtmlOptions($cart, $c, 'ST'); if (!empty($cart->ST['virtuemart_state_id'])) { $html = str_replace('value="' . $cart->ST['virtuemart_state_id'] . '"', 'value="' . $cart->ST['virtuemart_state_id'] . '" selected="selected"', $html); } else { if (!empty($cart->ST['shipto_virtuemart_state_id'])) { $html = str_replace('value="' . $cart->ST['shipto_virtuemart_state_id'] . '"', 'value="' . $cart->ST['shipto_virtuemart_state_id'] . '" selected="selected"', $html); } } if (!empty($userFields['fields'][$key]['required'])) { $userFields['fields']['virtuemart_state_id']['formcode'] = '<select class="inputbox multiple opcrequired" id="shipto_virtuemart_state_id" opcrequired="opcrequired" size="1" name="shipto_virtuemart_state_id" >' . $html . '</select>'; } else { $userFields['fields']['virtuemart_state_id']['formcode'] = '<select class="inputbox multiple" id="shipto_virtuemart_state_id" size="1" name="shipto_virtuemart_state_id" >' . $html . '</select>'; } //$f2 = $userFields['fields'][$key]; //unset($userFields['fields'][$key]); $userFields['fields']['virtuemart_state_id']['formcode'] = str_replace('id="virtuemart_state_id"', 'id="' . $userFields['fields']['virtuemart_state_id']['name'] . '"', $userFields['fields']['virtuemart_state_id']['formcode']); } //$orig = $userFields['fields'][$key]['name']; //$new = 'sa_'.strrev($orig); //$userFields['fields'][$key]['name'] = $new; //$userFields['fields'][$key]['formcode'] = $this->reverseId($userFields['fields'][$key]['formcode'], $orig, $new ); } } } require_once JPATH_ROOT . DS . 'components' . DS . 'com_onepage' . DS . 'helpers' . DS . 'mini.php'; $this->_model = OPCmini::getModel('user'); //new VirtuemartModelUser(); $layout = 'default'; $hidden = array(); $hidden_html = ''; if (!empty($userFields['fields'])) { foreach ($userFields['fields'] as $key => $val) { if (!empty($val['hidden'])) { $hidden[] = $val; $hidden_html .= $val['formcode']; unset($userFields['fields'][$key]); } } } $vars = array('rowFields' => $userFields, 'cart' => $cart, 'opc_logged' => $unlg); $html = $this->fetch($this, 'list_user_fields_shipping.tpl', $vars); $html .= $hidden_html; $html = $this->addListeners($html); if (empty($custom_rendering_fields)) { $custom_rendering_fields = array(); } if (in_array('virtuemart_country_id', $custom_rendering_fields)) { $html .= '<input type="hidden" id="shipto_virtuemart_country_id" name="shipto_virtuemart_country_id" value="' . $default_shipping_country . '" />'; } if (in_array('virtuemart_state_id', $custom_rendering_fields)) { $html .= '<input type="hidden" id="shipto_virtuemart_state_id" name="shipto_virtuemart_state_id" value="0" />'; } $html = str_replace('class="required"', 'class=" "', $html); $vars = array('op_shipto' => $html); if (!empty($only_one_shipping_address_hidden) && !empty($unlg)) { $html2 = '<input type="hidden" id="sachone" name="sa" value="adresaina" /><div id="ship_to_wrapper"><div id="idsa">' . $html . '</div></div>'; } else { $html2 = $this->fetch($this, 'single_shipping_address.tpl', $vars); if (empty($html2) && !empty($unlg)) { // if the new theme file not found: $html2 = '<div id="ship_to_wrapper"><input type="checkbox" id="sachone" name="sa" value="adresaina" onkeypress="javascript: Onepage.showSA(this, \'idsa\');" onclick="javascript: Onepage.showSA(this, \'idsa\');" autocomplete="off" />' . OPCLang::_('COM_VIRTUEMART_USER_FORM_ADD_SHIPTO_LBL') . '<div id="idsa" style="display: none;"> ' . $html . '</div></div>'; } } // if theme does not exists, return legacy html if (empty($html2) || !empty($no_wrapper)) { return $html; } return $html2; }
public static function createDefaultAddress(&$ref, &$cart) { include JPATH_ROOT . DS . 'components' . DS . 'com_onepage' . DS . 'config' . DS . 'onepage.cfg.php'; require_once JPATH_SITE . DS . 'components' . DS . 'com_onepage' . DS . 'helpers' . DS . 'loader.php'; $vendor = OPCloader::getVendorInfo($cart); if (empty($cart->BT)) { $cart->BT = array(); $GLOBALS['opc_cart_empty'] = true; } if (empty($cart->BT['zip'])) { $GLOBALS['opc_zip_empty'] = true; if (!empty($op_default_zip)) { $cart->BT['zip'] = $op_default_zip; } else { if ($op_default_zip === 0) { $cart->BT['zip'] = ''; } else { $cart->BT['zip'] = $vendor['zip']; } } } if (empty($cart->BT['virtuemart_country_id'])) { $GLOBALS['opc_country_empty'] = true; // ok, here we decide on default country: $default_shipping_country = OPCloader::getDefaultCountry($cart); if (!empty($default_shipping_country)) { $cart->BT['virtuemart_country_id'] = $default_shipping_country; } else { $cart->BT['virtuemart_country_id'] = $vendor['virtuemart_country_id']; } } if (empty($cart->BT['virtuemart_state_id'])) { $GLOBALS['opc_state_empty'] = true; // this will set taxes to zero: if (!empty($opc_usmode)) { $cart->BT['virtuemart_state_id'] = ' '; } } // we need to check the ST address as well if (!empty($cart->ST)) { if (empty($cart->ST['zip'])) { $GLOBALS['st_opc_zip_empty'] = true; if (!empty($op_default_zip)) { $cart->ST['zip'] = $op_default_zip; } else { if ($op_default_zip === 0) { $cart->ST['zip'] = ''; } else { $cart->ST['zip'] = $vendor['zip']; } } } if (empty($cart->ST['virtuemart_country_id'])) { $GLOBALS['st_opc_country_empty'] = true; // ok, here we decide on default country: $default_shipping_country = OPCloader::getDefaultCountry($cart); if (!empty($default_shipping_country)) { $cart->ST['virtuemart_country_id'] = $default_shipping_country; } else { $cart->ST['virtuemart_country_id'] = $vendor['virtuemart_country_id']; } } // we will not do the state for now if (empty($cart->ST['virtuemart_state_id'])) { $GLOBALS['st_opc_state_empty'] = true; if (!empty($opc_usmode)) { $cart->ST['virtuemart_state_id'] = ' '; } } } }