本文整理汇总了PHP中Address::validateController方法的典型用法代码示例。如果您正苦于以下问题:PHP Address::validateController方法的具体用法?PHP Address::validateController怎么用?PHP Address::validateController使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Address
的用法示例。
在下文中一共展示了Address::validateController方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: processSubmitAddress
/**
* Process changes on an address
*/
protected function processSubmitAddress()
{
$address = new Address();
$this->errors = $address->validateController();
$address->id_customer = (int) $this->context->customer->id;
// Check page token
if ($this->context->customer->isLogged() && !$this->isTokenValid()) {
$this->errors[] = Tools::displayError('Invalid token.');
}
// Check phone
if (Configuration::get('PS_ONE_PHONE_AT_LEAST') && !Tools::getValue('phone') && !Tools::getValue('phone_mobile')) {
$this->errors[] = Tools::displayError('You must register at least one phone number.');
}
if ($address->id_country) {
// Check country
if (!($country = new Country($address->id_country)) || !Validate::isLoadedObject($country)) {
throw new PrestaShopException('Country cannot be loaded with address->id_country');
}
if ((int) $country->contains_states && !(int) $address->id_state) {
$this->errors[] = Tools::displayError('This country requires you to chose a State.');
}
// US customer: normalize the address
if ($address->id_country == Country::getByIso('US') && Configuration::get('PS_TAASC')) {
include_once _PS_TAASC_PATH_ . 'AddressStandardizationSolution.php';
$normalize = new AddressStandardizationSolution();
$address->address1 = $normalize->AddressLineStandardization($address->address1);
$address->address2 = $normalize->AddressLineStandardization($address->address2);
}
$postcode = Tools::getValue('postcode');
/* Check zip code format */
if ($country->zip_code_format && !$country->checkZipCode($postcode)) {
$this->errors[] = sprintf(Tools::displayError('The Zip/Postal code you\'ve entered is invalid. It must follow this format: %s'), str_replace('C', $country->iso_code, str_replace('N', '0', str_replace('L', 'A', $country->zip_code_format))));
} elseif (empty($postcode) && $country->need_zip_code) {
$this->errors[] = Tools::displayError('A Zip / Postal code is required.');
} elseif ($postcode && !Validate::isPostCode($postcode)) {
$this->errors[] = Tools::displayError('The Zip / Postal code is invalid.');
}
// Check country DNI nox fix
/*if ($country->isNeedDni() && (!Tools::getValue('dni') || !Validate::isDniLite(Tools::getValue('dni'))))
$this->errors[] = Tools::displayError('The identification number is incorrect or has already been used.');
else if (!$country->isNeedDni())
$address->dni = null;*/
if ($country->need_identification_number && (!Tools::getValue('dni') || !Validate::isDniLite(Tools::getValue('dni')))) {
$this->errors[] = Tools::displayError('The identification number is incorrect or has already been used.');
} elseif (!$country->need_identification_number) {
${$addresses_type}->dni = null;
}
}
// Check if the alias exists
if (!$this->context->customer->is_guest && !empty($_POST['alias']) && (int) $this->context->customer->id > 0) {
$id_address = Tools::getValue('id_address');
if (Configuration::get('PS_ORDER_PROCESS_TYPE') && (int) Tools::getValue('opc_id_address_' . Tools::getValue('type')) > 0) {
$id_address = Tools::getValue('opc_id_address_' . Tools::getValue('type'));
}
if (Db::getInstance()->getValue('
SELECT count(*)
FROM ' . _DB_PREFIX_ . 'address
WHERE `alias` = \'' . pSql($_POST['alias']) . '\'
AND id_address != ' . (int) $id_address . '
AND id_customer = ' . (int) $this->context->customer->id . '
AND deleted = 0') > 0) {
$this->errors[] = sprintf(Tools::displayError('The alias "%s" has already been used. Please select another one.'), Tools::safeOutput($_POST['alias']));
}
}
// Check the requires fields which are settings in the BO
$this->errors = array_merge($this->errors, $address->validateFieldsRequiredDatabase());
// Don't continue this process if we have errors !
if ($this->errors && !$this->ajax) {
return;
}
// If we edit this address, delete old address and create a new one
if (Validate::isLoadedObject($this->_address)) {
if (Validate::isLoadedObject($country) && !$country->contains_states) {
$address->id_state = 0;
}
$address_old = $this->_address;
if (Customer::customerHasAddress($this->context->customer->id, (int) $address_old->id)) {
if ($address_old->isUsed()) {
$address_old->delete();
} else {
$address->id = (int) $address_old->id;
$address->date_add = $address_old->date_add;
}
}
}
if ($this->ajax && Tools::getValue('type') == 'invoice' && Configuration::get('PS_ORDER_PROCESS_TYPE')) {
$this->errors = array_unique(array_merge($this->errors, $address->validateController()));
if (count($this->errors)) {
$return = array('hasError' => (bool) $this->errors, 'errors' => $this->errors);
die(Tools::jsonEncode($return));
}
}
// Save address
if ($result = $address->save()) {
// Update id address of the current cart if necessary
if (isset($address_old) && $address_old->isUsed()) {
$this->context->cart->updateAddressId($address_old->id, $address->id);
//.........这里部分代码省略.........
示例2: processSubmitAccount
protected function processSubmitAccount()
{
if (!$this->isOpcModuleActive()) {
return parent::processSubmitAccount();
}
// Entire override is here just because of rigid address set-up. Original PS do not expect
// address being set to cart prior to processSubmitAccount call and thus always creates new Address
$inv_first_on = Configuration::get('OPC_INVOICE_FIRST') == "1";
Hook::exec('actionBeforeSubmitAccount');
$this->create_account = true;
if (Tools::isSubmit('submitAccount')) {
$this->context->smarty->assign('email_create', 1);
}
// New Guest customer
if (!Tools::getValue('is_new_customer', 1) && !Configuration::get('PS_GUEST_CHECKOUT_ENABLED')) {
$this->errors[] = Tools::displayError('You cannot create a guest account.');
}
// Customer (not-guest) checkout, password field is hidden and password is automatically generated
if ((!Tools::getIsset('passwd') || trim($_POST['passwd']) == "") && trim(Tools::getValue('email')) != "" && Configuration::get('OPC_CREATE_CUSTOMER_PASSWORD') && !CustomerCore::customerExists(Tools::getValue('email'))) {
$_POST['is_new_customer'] = 1;
$_POST['passwd'] = Tools::passwdGen(5);
} elseif (!Tools::getValue('is_new_customer', 1)) {
$_POST['passwd'] = md5(time() . _COOKIE_KEY_);
}
if (Tools::getIsset('guest_email') && $_POST['guest_email']) {
$_POST['email'] = $_POST['guest_email'];
}
// Checked the user address in case he changed his email address
if (Validate::isEmail($email = Tools::getValue('email')) && !empty($email)) {
if (Customer::customerExists($email)) {
$this->errors[] = Tools::displayError('An account is already registered with this e-mail.', false);
}
}
// Preparing customer
$customer = new Customer();
$_POST['lastname'] = Tools::getValue('customer_lastname');
$_POST['firstname'] = Tools::getValue('customer_firstname');
// if (Configuration::get('PS_ONE_PHONE_AT_LEAST') && !Tools::getValue('phone') && !Tools::getValue('phone_mobile') &&
// (Configuration::get('PS_REGISTRATION_PROCESS_TYPE') || Configuration::get('PS_GUEST_CHECKOUT_ENABLED')))
// $this->errors[] = Tools::displayError('You must register at least one phone number');
$error_phone = false;
if (Configuration::get('PS_ONE_PHONE_AT_LEAST')) {
$inv_suffix = $inv_first_on ? "_invoice" : "";
if (Tools::isSubmit('submitGuestAccount') || !Tools::getValue('is_new_customer')) {
if (!Tools::getValue('phone' . $inv_suffix) && !Tools::getValue('phone_mobile' . $inv_suffix)) {
$error_phone = true;
}
} elseif ((Configuration::get('PS_REGISTRATION_PROCESS_TYPE') || Configuration::get('PS_ORDER_PROCESS_TYPE')) && (Configuration::get('PS_ORDER_PROCESS_TYPE') && !Tools::getValue('email_create')) && (!Tools::getValue('phone' . $inv_suffix) && !Tools::getValue('phone_mobile' . $inv_suffix))) {
$error_phone = true;
} elseif (Configuration::get('PS_REGISTRATION_PROCESS_TYPE') && Configuration::get('PS_ORDER_PROCESS_TYPE') && Tools::getValue('email_create') && (!Tools::getValue('phone' . $inv_suffix) && !Tools::getValue('phone_mobile' . $inv_suffix))) {
$error_phone = true;
}
}
if ($error_phone) {
$this->errors[] = Tools::displayError('You must register at least one phone number.');
}
$this->errors = array_unique(array_merge($this->errors, $customer->validateController()));
// Check the requires fields which are settings in the BO
$this->errors = array_merge($this->errors, $customer->validateFieldsRequiredDatabase());
if (!Configuration::get('PS_REGISTRATION_PROCESS_TYPE') && !$this->ajax && !Tools::isSubmit('submitGuestAccount')) {
if (!count($this->errors)) {
if (Tools::isSubmit('newsletter')) {
$this->processCustomerNewsletter($customer);
}
$customer->birthday = empty($_POST['years']) ? '' : (int) $_POST['years'] . '-' . (int) $_POST['months'] . '-' . (int) $_POST['days'];
if (!Validate::isBirthDate($customer->birthday)) {
$this->errors[] = Tools::displayError('Invalid birthday.');
}
$customer->active = 1;
// New Guest customer
if (Tools::isSubmit('is_new_customer')) {
$customer->is_guest = !Tools::getValue('is_new_customer', 1);
} else {
$customer->is_guest = 0;
}
if (!count($this->errors)) {
if (!$customer->add()) {
$this->errors[] = Tools::displayError('An error occurred while creating your account.');
} else {
if (!$customer->is_guest) {
if (!$this->sendConfirmationMail($customer)) {
$this->errors[] = Tools::displayError('Cannot send e-mail');
}
}
$this->updateContext($customer);
$this->context->cart->update();
Hook::exec('actionCustomerAccountAdd', array('_POST' => $_POST, 'newCustomer' => $customer));
if ($this->ajax) {
$return = array('hasError' => !empty($this->errors), 'errors' => $this->errors, 'isSaved' => true, 'id_customer' => (int) $this->context->cookie->id_customer, 'id_address_delivery' => $this->context->cart->id_address_delivery, 'id_address_invoice' => $this->context->cart->id_address_invoice, 'token' => Tools::getToken(false));
die(Tools::jsonEncode($return));
}
// redirection: if cart is not empty : redirection to the cart
if (count($this->context->cart->getProducts(true)) > 0) {
Tools::redirect('index.php?controller=order&multi-shipping=' . (int) Tools::getValue('multi-shipping'));
} else {
Tools::redirect('index.php?controller=my-account');
}
}
}
}
//.........这里部分代码省略.........
示例3: postProcess
/**
* AdminController::postProcess() override
* @see AdminController::postProcess()
*/
public function postProcess()
{
// checks access
if (Tools::isSubmit('submitAdd' . $this->table) && !($this->tabAccess['add'] === '1')) {
$this->errors[] = Tools::displayError('You do not have permission to add suppliers.');
return parent::postProcess();
}
if (Tools::isSubmit('submitAdd' . $this->table)) {
if (Tools::isSubmit('id_supplier') && !($obj = $this->loadObject(true))) {
return;
}
// updates/creates address if it does not exist
if (Tools::isSubmit('id_address') && (int) Tools::getValue('id_address') > 0) {
$address = new Address((int) Tools::getValue('id_address'));
} else {
$address = new Address();
}
// creates address
$address->alias = Tools::getValue('name', null);
$address->lastname = 'supplier';
// skip problem with numeric characters in supplier name
$address->firstname = 'supplier';
// skip problem with numeric characters in supplier name
$address->address1 = Tools::getValue('address', null);
$address->address2 = Tools::getValue('address2', null);
$address->postcode = Tools::getValue('postcode', null);
$address->phone = Tools::getValue('phone', null);
$address->phone_mobile = Tools::getValue('phone_mobile', null);
$address->id_country = Tools::getValue('id_country', null);
$address->id_state = Tools::getValue('id_state', null);
$address->city = Tools::getValue('city', null);
$validation = $address->validateController();
// checks address validity
if (count($validation) > 0) {
foreach ($validation as $item) {
$this->errors[] = $item;
}
$this->errors[] = Tools::displayError('The address is not correct. Please make sure all of the required fields are completed.');
} else {
if (Tools::isSubmit('id_address') && Tools::getValue('id_address') > 0) {
$address->update();
} else {
$address->save();
$_POST['id_address'] = $address->id;
}
}
return parent::postProcess();
} elseif (Tools::isSubmit('delete' . $this->table)) {
if (!($obj = $this->loadObject(true))) {
return;
} elseif (SupplyOrder::supplierHasPendingOrders($obj->id)) {
$this->errors[] = $this->l('It is not possible to delete a supplier if there are pending supplier orders.');
} else {
//delete all product_supplier linked to this supplier
Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'product_supplier` WHERE `id_supplier`=' . (int) $obj->id);
$id_address = Address::getAddressIdBySupplierId($obj->id);
$address = new Address($id_address);
if (Validate::isLoadedObject($address)) {
$address->deleted = 1;
$address->save();
}
return parent::postProcess();
}
} else {
return parent::postProcess();
}
}
示例4: validateAddressDictionary
public function validateAddressDictionary($encoder, $addressDictionary)
{
global $cookie;
// prepare the fields inside the POST (so we can use Prestashop's validateController)
$_POST['alias'] = $this->SHIPPING_ADDRESS_ALIAS;
unset($_POST['firstname']);
if (isset($addressDictionary['FirstName'])) {
$_POST['firstname'] = $addressDictionary['FirstName'];
}
unset($_POST['lastname']);
if (isset($addressDictionary['LastName'])) {
$_POST['lastname'] = $addressDictionary['LastName'];
}
unset($_POST['address1']);
if (isset($addressDictionary['Street1'])) {
$_POST['address1'] = $addressDictionary['Street1'];
}
unset($_POST['address2']);
if (isset($addressDictionary['Street2'])) {
$_POST['address2'] = $addressDictionary['Street2'];
}
unset($_POST['phone']);
if (isset($addressDictionary['Phone1'])) {
$_POST['phone'] = $addressDictionary['Phone1'];
}
unset($_POST['phone_mobile']);
if (isset($addressDictionary['Phone2'])) {
$_POST['phone_mobile'] = $addressDictionary['Phone2'];
}
unset($_POST['postcode']);
if (isset($addressDictionary['Zipcode'])) {
$_POST['postcode'] = $addressDictionary['Zipcode'];
}
unset($_POST['city']);
if (isset($addressDictionary['City'])) {
$_POST['city'] = $addressDictionary['City'];
}
unset($_POST['id_country']);
if (isset($addressDictionary['Country'])) {
$_POST['id_country'] = $addressDictionary['Country'];
}
unset($_POST['id_state']);
if (isset($addressDictionary['State'])) {
$_POST['id_state'] = $addressDictionary['State'];
}
// code taken from AddressController::preProcess
$address = new Address();
if (_PS_VERSION_ < '1.5') {
$errors = $address->validateControler();
} else {
$errors = $errors = $address->validateController();
}
$address->id_customer = (int) $cookie->id_customer;
if (!Tools::getValue('phone') and !Tools::getValue('phone_mobile')) {
$errors[] = Tools::displayError('You must register at least one phone number');
}
if (!($country = new Country((int) $address->id_country)) or !Validate::isLoadedObject($country)) {
CartAPI_Helpers::dieOnErrors($encoder, 'InvalidAddress', CartAPI_Handlers_Helpers::removeHtmlTags($errors));
}
/* US customer: normalize the address */
if ($address->id_country == Country::getByIso('US')) {
include_once _PS_TAASC_PATH_ . 'AddressStandardizationSolution.php';
$normalize = new AddressStandardizationSolution();
$address->address1 = $normalize->AddressLineStandardization($address->address1);
$address->address2 = $normalize->AddressLineStandardization($address->address2);
}
$zip_code_format = $country->zip_code_format;
if ($country->need_zip_code) {
if ($postcode = Tools::getValue('postcode') and $zip_code_format) {
$zip_regexp = '/^' . $zip_code_format . '$/ui';
$zip_regexp = str_replace(' ', '( |)', $zip_regexp);
$zip_regexp = str_replace('-', '(-|)', $zip_regexp);
$zip_regexp = str_replace('N', '[0-9]', $zip_regexp);
$zip_regexp = str_replace('L', '[a-zA-Z]', $zip_regexp);
$zip_regexp = str_replace('C', $country->iso_code, $zip_regexp);
if (!preg_match($zip_regexp, $postcode)) {
$errors[] = '<strong>' . Tools::displayError('Zip/ Postal code') . '</strong> ' . Tools::displayError('is invalid.') . '<br />' . Tools::displayError('Must be typed as follows:') . ' ' . str_replace('C', $country->iso_code, str_replace('N', '0', str_replace('L', 'A', $zip_code_format)));
}
} elseif ($zip_code_format) {
$errors[] = '<strong>' . Tools::displayError('Zip/ Postal code') . '</strong> ' . Tools::displayError('is required.');
} elseif ($postcode and !preg_match('/^[0-9a-zA-Z -]{4,9}$/ui', $postcode)) {
$errors[] = '<strong>' . Tools::displayError('Zip/ Postal code') . '</strong> ' . Tools::displayError('is invalid.') . '<br />' . Tools::displayError('Must be typed as follows:') . ' ' . str_replace('C', $country->iso_code, str_replace('N', '0', str_replace('L', 'A', $zip_code_format)));
}
}
/*
if ($country->isNeedDni() AND (!Tools::getValue('dni') OR !Validate::isDniLite(Tools::getValue('dni'))))
$errors[] = Tools::displayError('Identification number is incorrect or has already been used.');
elseif (!$country->isNeedDni())
$address->dni = NULL;
if (Configuration::get('PS_TOKEN_ENABLE') == 1 AND
strcmp(Tools::getToken(false), Tools::getValue('token')) AND
self::$cookie->isLogged(true) === true)
$errors[] = Tools::displayError('Invalid token');
*/
if ((int) $country->contains_states and !(int) $address->id_state) {
$errors[] = Tools::displayError('This country requires a state selection.');
}
// finished
if (count($errors) > 0) {
CartAPI_Helpers::dieOnErrors($encoder, 'InvalidAddress', CartAPI_Handlers_Helpers::removeHtmlTags($errors));
//.........这里部分代码省略.........
示例5: updateAddress
protected function updateAddress()
{
// updates/creates address if it does not exist
if (Tools::isSubmit('id_address') && (int) Tools::getValue('id_address') > 0) {
$address = new Address((int) Tools::getValue('id_address'));
} else {
$address = new Address();
}
// creates address
// sets the address
$address->alias = Tools::getValue('reference', null);
$address->lastname = 'warehouse';
// skip problem with numeric characters in warehouse name
$address->firstname = 'warehouse';
// skip problem with numeric characters in warehouse name
$address->address1 = Tools::getValue('address', null);
$address->address2 = Tools::getValue('address2', null);
$address->postcode = Tools::getValue('postcode', null);
$address->phone = Tools::getValue('phone', null);
$address->id_country = Tools::getValue('id_country', null);
$address->id_state = Tools::getValue('id_state', null);
$address->city = Tools::getValue('city', null);
// validates the address
$validation = $address->validateController();
// checks address validity
if (count($validation) > 0) {
foreach ($validation as $item) {
$this->errors[] = $item;
}
$this->errors[] = Tools::displayError('The address is not correct. Please make sure all of the required fields are completed.');
} else {
if (Tools::isSubmit('id_address') && Tools::getValue('id_address') > 0) {
$address->update();
} else {
$address->save();
$_POST['id_address'] = $address->id;
}
}
}
示例6: processSubmitAddress
/**
* Process changes on an address
*/
protected function processSubmitAddress()
{
$address = new Address();
$this->errors = $address->validateController();
$address->id_customer = (int) $this->context->customer->id;
// Check page token
if ($this->context->customer->isLogged() && !$this->isTokenValid()) {
$this->errors[] = Tools::displayError('Invalid token.');
}
// Check phone
if (Configuration::get('PS_ONE_PHONE_AT_LEAST') && !Tools::getValue('phone') && !Tools::getValue('phone_mobile')) {
$this->errors[] = Tools::displayError('You must register at least one phone number.');
}
if ($address->id_country) {
// Check country
if (!($country = new Country($address->id_country)) || !Validate::isLoadedObject($country)) {
throw new PrestaShopException('Country cannot be loaded with address->id_country');
}
// if ((int)$country->contains_states && !(int)$address->id_state)
// $this->errors[] = Tools::displayError('This country requires you to chose a State.');
if (!$country->active) {
$this->errors[] = Tools::displayError('This country is not active.');
}
// Check country DNI
if ($country->isNeedDni() && (!Tools::getValue('dni') || !Validate::isDniLite(Tools::getValue('dni')))) {
$this->errors[] = Tools::displayError('The identification number is incorrect or has already been used.');
} elseif (!$country->isNeedDni()) {
$address->dni = null;
}
}
// Check if the alias exists
if (!$this->context->customer->is_guest && !empty($_POST['alias']) && (int) $this->context->customer->id > 0) {
$id_address = Tools::getValue('id_address');
if (Configuration::get('PS_ORDER_PROCESS_TYPE') && (int) Tools::getValue('opc_id_address_' . Tools::getValue('type')) > 0) {
$id_address = Tools::getValue('opc_id_address_' . Tools::getValue('type'));
}
if (Address::aliasExist(Tools::getValue('alias'), (int) $id_address, (int) $this->context->customer->id)) {
$this->errors[] = sprintf(Tools::displayError('The alias "%s" has already been used. Please select another one.'), Tools::safeOutput(Tools::getValue('alias')));
}
}
// Check the requires fields which are settings in the BO
$this->errors = array_merge($this->errors, $address->validateFieldsRequiredDatabase());
// Don't continue this process if we have errors !
if ($this->errors && !$this->ajax) {
return;
}
// If we edit this address, delete old address and create a new one
if (Validate::isLoadedObject($this->_address)) {
if (Validate::isLoadedObject($country) && !$country->contains_states) {
$address->id_state = 0;
}
$address_old = $this->_address;
if (Customer::customerHasAddress($this->context->customer->id, (int) $address_old->id)) {
if ($address_old->isUsed()) {
$address_old->delete();
} else {
$address->id = (int) $address_old->id;
$address->date_add = $address_old->date_add;
}
}
}
if ($this->ajax && Configuration::get('PS_ORDER_PROCESS_TYPE')) {
$this->errors = array_unique(array_merge($this->errors, $address->validateController()));
if (count($this->errors)) {
$return = array('hasError' => (bool) $this->errors, 'errors' => $this->errors);
$this->ajaxDie(Tools::jsonEncode($return));
}
}
// Save address
if ($result = $address->save()) {
// Update id address of the current cart if necessary
if (isset($address_old) && $address_old->isUsed()) {
$this->context->cart->updateAddressId($address_old->id, $address->id);
} else {
// Update cart address
$this->context->cart->autosetProductAddress();
}
if ((bool) Tools::getValue('select_address', false) == true || Tools::getValue('type') == 'invoice' && Configuration::get('PS_ORDER_PROCESS_TYPE')) {
$this->context->cart->id_address_invoice = (int) $address->id;
} elseif (Configuration::get('PS_ORDER_PROCESS_TYPE')) {
$this->context->cart->id_address_invoice = (int) $this->context->cart->id_address_delivery;
}
$this->context->cart->update();
if ($this->ajax) {
$return = array('hasError' => (bool) $this->errors, 'errors' => $this->errors, 'id_address_delivery' => (int) $this->context->cart->id_address_delivery, 'id_address_invoice' => (int) $this->context->cart->id_address_invoice);
$this->ajaxDie(Tools::jsonEncode($return));
}
// Redirect to old page or current page
if ($back = Tools::getValue('back')) {
if ($back == Tools::secureReferrer(Tools::getValue('back'))) {
Tools::redirect(html_entity_decode($back));
}
$mod = Tools::getValue('mod');
Tools::redirect('index.php?controller=' . $back . ($mod ? '&back=' . $mod : ''));
} else {
Tools::redirect('index.php?controller=addresses');
}
//.........这里部分代码省略.........
示例7: postProcess
/**
* AdminController::postProcess() override
* @see AdminController::postProcess()
*/
public function postProcess()
{
require_once _PS_MODULE_DIR_ . 'erpillicopresta/models/ErpFeature.php';
$this->context->smarty->assign(array('erp_feature' => ErpFeature::getFeaturesWithToken($this->context->language->iso_code), 'template_path' => $this->template_path));
if (Tools::isSubmit('export_csv')) {
$this->renderCSV();
}
// checks access
if (Tools::isSubmit('submitAdd' . $this->table) && !($this->tabAccess['add'] === '1')) {
$this->errors[] = Tools::displayError($this->l('You do not have permission to add suppliers.'));
return parent::postProcess();
}
if (Tools::isSubmit('submitAdd' . $this->table)) {
if (Tools::isSubmit('id_supplier') && !($obj = $this->loadObject(true))) {
return;
}
// updates/creates address if it does not exist
if (Tools::isSubmit('id_address') && (int) Tools::getValue('id_address') > 0) {
$address = new Address((int) Tools::getValue('id_address'));
} else {
$address = new Address();
}
// creates address
$address->alias = Tools::getValue('name', null);
$address->lastname = 'supplier';
// skip problem with numeric characters in supplier name
$address->firstname = 'supplier';
// skip problem with numeric characters in supplier name
$address->address1 = Tools::getValue('address', null);
$address->address2 = Tools::getValue('address2', null);
$address->postcode = Tools::getValue('postcode', null);
$address->phone = Tools::getValue('phone', null);
$address->id_country = Tools::getValue('id_country', null);
$address->id_state = Tools::getValue('id_state', null);
$address->city = Tools::getValue('city', null);
$validation = $address->validateController();
// checks address validity
if (count($validation) > 0) {
foreach ($validation as $item) {
$this->errors[] = $item;
}
$this->errors[] = Tools::displayError($this->l('The address is not correct. Please make sure all of the required fields are completed.'));
} else {
if (Tools::isSubmit('id_address') && Tools::getValue('id_address') > 0) {
$address->update();
} else {
$address->save();
$_POST['id_address'] = $address->id;
}
}
//--ERP informations
// updates/creates erp_supplier if it does not exist
if (Tools::isSubmit('id_erpip_supplier') && (int) Tools::getValue('id_erpip_supplier') > 0) {
$erp_supplier = new ErpSupplier((int) Tools::getValue('id_erpip_supplier'));
} else {
$erp_supplier = new ErpSupplier();
}
// creates erp_supplier
$erp_supplier->email = Tools::getValue('email', null);
$erp_supplier->fax = Tools::getValue('fax', null);
$erp_supplier->franco_amount = Tools::getValue('franco_amount', null);
$erp_supplier->discount_amount = Tools::getValue('discount_amount', null);
$erp_supplier->shipping_amount = Tools::getValue('shipping_amount', null);
$erp_supplier->escompte = Tools::getValue('escompte', null);
$erp_supplier->delivery_time = Tools::getValue('delivery_time', null);
$erp_supplier->account_number_accounting = Tools::getValue('account_number_accounting', null);
$validation2 = $erp_supplier->validateController();
//print_r($validation2);
// checks erp_supplier validity
if (count($validation2) > 0) {
foreach ($validation2 as $item) {
$this->errors[] = $item;
}
$this->errors[] = Tools::displayError($this->l('The ErpIllicopresta Supplier is not correct. Please make sure all of the required fields are completed.'));
} else {
if (Tools::isSubmit('id_erpip_supplier') && Tools::getValue('id_erpip_supplier') > 0) {
$erp_supplier->update();
} else {
$erp_supplier->save();
$_POST['id_erpip_supplier'] = $erp_supplier->id;
}
}
return parent::postProcess();
} else {
if (Tools::isSubmit('delete' . $this->table)) {
if (!($obj = $this->loadObject(true))) {
return;
} else {
if (SupplyOrder::supplierHasPendingOrders($obj->id)) {
$this->errors[] = $this->l('It is not possible to delete a supplier if there are pending supplier orders.');
} else {
//delete all product_supplier linked to this supplier
Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'product_supplier` WHERE `id_supplier`=' . (int) $obj->id);
$id_address = Address::getAddressIdBySupplierId($obj->id);
$address = new Address($id_address);
if (Validate::isLoadedObject($address)) {
//.........这里部分代码省略.........
示例8: processSubmitAddress
/**
* Process changes on an address
*/
protected function processSubmitAddress()
{
/*if ($this->context->customer->is_guest)
Tools::redirect('index.php?controller=addresses');*/
$address = new Address();
$this->errors = $address->validateController();
$address->id_customer = (int) $this->context->customer->id;
// Check page token
if ($this->context->customer->isLogged() && !$this->isTokenValid()) {
$this->errors[] = Tools::displayError('Invalid token');
}
// Check phone
if (!Tools::getValue('phone') && !Tools::getValue('phone_mobile')) {
$this->errors[] = Tools::displayError('You must register at least one phone number');
}
if ($address->id_country) {
// Check country
if (!($country = new Country($address->id_country)) || !Validate::isLoadedObject($country)) {
throw new PrestaShopException('Country cannot be loaded with address->id_country');
}
if ((int) $country->contains_states && !(int) $address->id_state) {
$this->errors[] = Tools::displayError('This country requires a state selection.');
}
// US customer: normalize the address
if ($address->id_country == Country::getByIso('US')) {
include_once _PS_TAASC_PATH_ . 'AddressStandardizationSolution.php';
$normalize = new AddressStandardizationSolution();
$address->address1 = $normalize->AddressLineStandardization($address->address1);
$address->address2 = $normalize->AddressLineStandardization($address->address2);
}
// Check country zip code
$zip_code_format = $country->zip_code_format;
if ($country->need_zip_code) {
if (($postcode = Tools::getValue('postcode')) && $zip_code_format) {
if (!$country->checkZipCode($postcode)) {
$this->errors[] = sprintf(Tools::displayError('Zip/Postal code is invalid. Must be typed as follows: %s'), str_replace('C', $country->iso_code, str_replace('N', '0', str_replace('L', 'A', $country->zip_code_format))));
}
} else {
if ($zip_code_format) {
$this->errors[] = Tools::displayError('Zip/Postal code is required.');
} else {
if ($postcode && !preg_match('/^[0-9a-zA-Z -]{4,9}$/ui', $postcode)) {
$this->errors[] = sprintf(Tools::displayError('Zip/Postal code is invalid. Must be typed as follows: %s'), str_replace('C', $country->iso_code, str_replace('N', '0', str_replace('L', 'A', $country->zip_code_format))));
}
}
}
}
// Check country DNI
if ($country->isNeedDni() && (!Tools::getValue('dni') || !Validate::isDniLite(Tools::getValue('dni')))) {
$this->errors[] = Tools::displayError('Identification number is incorrect or has already been used.');
} else {
if (!$country->isNeedDni()) {
$address->dni = null;
}
}
}
// Check if the alias exists
if (!empty($_POST['alias']) && (int) $this->context->customer->id > 0 && Db::getInstance()->getValue('
SELECT count(*)
FROM ' . _DB_PREFIX_ . 'address
WHERE `alias` = \'' . pSql($_POST['alias']) . '\'
AND id_address != ' . (int) Tools::getValue('id_address') . '
AND id_customer = ' . (int) $this->context->customer->id . '
AND deleted = 0') > 0) {
$this->errors[] = sprintf(Tools::displayError('The alias "%s" is already used, please chose another one.'), Tools::safeOutput($_POST['alias']));
}
// Check the requires fields which are settings in the BO
$this->errors = array_merge($this->errors, $address->validateFieldsRequiredDatabase());
// Don't continue this process if we have errors !
if ($this->errors && !$this->ajax) {
return;
}
// If we edit this address, delete old address and create a new one
if (Validate::isLoadedObject($this->_address)) {
if (Validate::isLoadedObject($country) && !$country->contains_states) {
$address->id_state = 0;
}
$address_old = $this->_address;
if (Customer::customerHasAddress($this->context->customer->id, (int) $address_old->id)) {
if ($address_old->isUsed()) {
$address_old->delete();
} else {
$address->id = (int) $address_old->id;
$address->date_add = $address_old->date_add;
}
}
}
// Save address
if ($result = $address->save()) {
// Update id address of the current cart if necessary
if (isset($address_old) && $address_old->isUsed()) {
$this->context->cart->updateAddressId($address_old->id, $address->id);
} else {
// Update cart address
$this->context->cart->autosetProductAddress();
}
if ($this->ajax) {
//.........这里部分代码省略.........
示例9: processSubmitAccount
/**
* Process submit on an account
*/
protected function processSubmitAccount()
{
Hook::exec('actionBeforeSubmitAccount');
$this->create_account = true;
if (Tools::isSubmit('submitAccount')) {
$this->context->smarty->assign('email_create', 1);
}
// New Guest customer
if (!Tools::getValue('is_new_customer', 1) && !Configuration::get('PS_GUEST_CHECKOUT_ENABLED')) {
$this->errors[] = Tools::displayError('You cannot create a guest account..');
}
if (!Tools::getValue('is_new_customer', 1)) {
$_POST['passwd'] = md5(time() . _COOKIE_KEY_);
}
if (isset($_POST['guest_email']) && $_POST['guest_email']) {
$_POST['email'] = $_POST['guest_email'];
}
// Checked the user address in case he changed his email address
if (Validate::isEmail($email = Tools::getValue('email')) && !empty($email)) {
if (Customer::customerExists($email)) {
$this->errors[] = Tools::displayError('An account using this email address has already been registered.', false);
}
}
// Preparing customer
$customer = new Customer();
$lastnameAddress = $_POST['lastname'];
$firstnameAddress = $_POST['firstname'];
$_POST['lastname'] = Tools::getValue('customer_lastname');
$_POST['firstname'] = Tools::getValue('customer_firstname');
$error_phone = false;
if (Configuration::get('PS_ONE_PHONE_AT_LEAST')) {
if (Tools::isSubmit('submitGuestAccount') || !Tools::getValue('is_new_customer')) {
if (!Tools::getValue('phone') && !Tools::getValue('phone_mobile')) {
$error_phone = true;
}
} elseif ((Configuration::get('PS_REGISTRATION_PROCESS_TYPE') || Configuration::get('PS_ORDER_PROCESS_TYPE')) && (Configuration::get('PS_ORDER_PROCESS_TYPE') && !Tools::getValue('email_create')) && (!Tools::getValue('phone') && !Tools::getValue('phone_mobile'))) {
$error_phone = true;
} elseif (Configuration::get('PS_REGISTRATION_PROCESS_TYPE') && Configuration::get('PS_ORDER_PROCESS_TYPE') && Tools::getValue('email_create') && (!Tools::getValue('phone') && !Tools::getValue('phone_mobile'))) {
$error_phone = true;
}
}
if ($error_phone) {
$this->errors[] = Tools::displayError('You must register at least one phone number.');
}
$this->errors = array_unique(array_merge($this->errors, $customer->validateController()));
// Check the requires fields which are settings in the BO
$this->errors = array_merge($this->errors, $customer->validateFieldsRequiredDatabase());
if (!Configuration::get('PS_REGISTRATION_PROCESS_TYPE') && !$this->ajax && !Tools::isSubmit('submitGuestAccount')) {
if (!count($this->errors)) {
if (Tools::isSubmit('newsletter')) {
$this->processCustomerNewsletter($customer);
}
$customer->birthday = empty($_POST['years']) ? '' : (int) $_POST['years'] . '-' . (int) $_POST['months'] . '-' . (int) $_POST['days'];
if (!Validate::isBirthDate($customer->birthday)) {
$this->errors[] = Tools::displayError('Invalid date of birth.');
}
// New Guest customer
$customer->is_guest = Tools::isSubmit('is_new_customer') ? !Tools::getValue('is_new_customer', 1) : 0;
$customer->active = 1;
if (!count($this->errors)) {
if ($customer->add()) {
if (!$customer->is_guest) {
if (!$this->sendConfirmationMail($customer)) {
$this->errors[] = Tools::displayError('The email cannot be sent.');
}
}
$this->updateContext($customer);
$this->context->cart->update();
Hook::exec('actionCustomerAccountAdd', array('_POST' => $_POST, 'newCustomer' => $customer));
if ($this->ajax) {
$return = array('hasError' => !empty($this->errors), 'errors' => $this->errors, 'isSaved' => true, 'id_customer' => (int) $this->context->cookie->id_customer, 'id_address_delivery' => $this->context->cart->id_address_delivery, 'id_address_invoice' => $this->context->cart->id_address_invoice, 'token' => Tools::getToken(false));
die(Tools::jsonEncode($return));
}
if ($back = Tools::getValue('back')) {
Tools::redirect(html_entity_decode($back));
}
// redirection: if cart is not empty : redirection to the cart
if (count($this->context->cart->getProducts(true)) > 0) {
Tools::redirect('index.php?controller=order&multi-shipping=' . (int) Tools::getValue('multi-shipping'));
} else {
Tools::redirect('index.php?controller=' . ($this->authRedirection !== false ? url_encode($this->authRedirection) : 'my-account'));
}
} else {
$this->errors[] = Tools::displayError('An error occurred while creating your account..');
}
}
}
} else {
// Preparing address
$address = new Address();
$_POST['lastname'] = $lastnameAddress;
$_POST['firstname'] = $firstnameAddress;
$address->id_customer = 1;
$this->errors = array_unique(array_merge($this->errors, $address->validateController()));
// US customer: normalize the address
if ($address->id_country == Country::getByIso('US')) {
include_once _PS_TAASC_PATH_ . 'AddressStandardizationSolution.php';
//.........这里部分代码省略.........
示例10: _processSubmitAddress
protected function _processSubmitAddress($id_address, $type)
{
if (isset($id_address) && $id_address > 0) {
$address = new Address($id_address);
} else {
$address = new Address();
}
$this->errors = $address->validateController();
$fields_to_check = array("address2", "company", "vat_number", "phone", "phone_mobile", "other");
foreach ($fields_to_check as $field1) {
if (Tools::getValue($field1) && trim(Tools::getValue($field1)) == "") {
$address->{$field1} = "";
}
}
if (empty($this->errors)) {
// So that dummyvalue address doesn't get customer id assigned
$address->id_customer = (int) $this->context->customer->id;
}
if ($this->context->customer->isLogged() && !$this->isTokenValid()) {
$this->errors[] = Tools::displayError('Invalid token');
}
if (Configuration::get('PS_ONE_PHONE_AT_LEAST') && !Tools::getValue('phone') && !Tools::getValue('phone_mobile') && !Configuration::get('PS_REGISTRATION_PROCESS_TYPE') && $type == 'delivery') {
$this->errors[] = Tools::displayError('You must register at least one phone number');
}
if ($address->id_country) {
if (!($country = new Country($address->id_country)) || !Validate::isLoadedObject($country)) {
throw new PrestaShopException('Country cannot be loaded with address->id_country');
}
if ((int) $country->contains_states && !(int) $address->id_state) {
$this->errors[] = Tools::displayError('This country requires a state selection.');
}
if (version_compare(_PS_VERSION_, "1.6.0") < 0 && $address->id_country == Country::getByIso('US')) {
include_once _PS_TAASC_PATH_ . 'AddressStandardizationSolution.php';
$normalize = new AddressStandardizationSolution();
$address->address1 = $normalize->AddressLineStandardization($address->address1);
$address->address2 = $normalize->AddressLineStandardization($address->address2);
}
$zip_code_format = $country->zip_code_format;
if ($country->need_zip_code) {
if (($postcode = trim(Tools::getValue('postcode'))) && $zip_code_format) {
if (!$country->checkZipCode($postcode)) {
$this->errors[] = sprintf(Tools::displayError('Zip/Postal code is invalid. Must be typed as follows: %s'), str_replace('C', $country->iso_code, str_replace('N', '0', str_replace('L', 'A', $country->zip_code_format))));
}
} else {
if ($zip_code_format && !$this->context->cart->isVirtualCart()) {
$this->errors[] = Tools::displayError('Zip/Postal code is required.');
} else {
if ($postcode && !preg_match('/^[0-9a-zA-Z -]{4,9}$/ui', $postcode)) {
$this->errors[] = sprintf(Tools::displayError('Zip/Postal code is invalid. Must be typed as follows: %s'), str_replace('C', $country->iso_code, str_replace('N', '0', str_replace('L', 'A', $country->zip_code_format))));
}
}
}
}
}
if (isset($id_address) && $id_address > 0) {
$alias_id_address = $id_address;
} else {
$alias_id_address = (int) Tools::getValue('id_address');
}
if (!$this->context->customer->is_guest && Tools::getValue('alias') && (int) $this->context->customer->id > 0 && Db::getInstance()->getValue('
SELECT count(*)
FROM ' . _DB_PREFIX_ . 'address
WHERE `alias` = \'' . pSql(Tools::getValue('alias')) . '\'
AND id_address != ' . $alias_id_address . '
AND id_customer = ' . (int) $this->context->customer->id . '
AND deleted = 0') > 0) {
$address->alias .= '_' . $alias_id_address;
}
$this->errors = array_merge($this->errors, $address->validateFieldsRequiredDatabase());
if ($this->errors) {
if ($this->ajax) {
$return = array('hasError' => (bool) $this->errors, 'errors' => $this->errors, 'id_address_delivery' => $this->context->cart->id_address_delivery, 'id_address_invoice' => $this->context->cart->id_address_invoice);
die(Tools::jsonEncode($return));
} else {
return;
}
}
$this->context->cart->setNoMultishipping();
// As the cart is no multishipping, set each delivery address lines with the main delivery address
$address->alias = preg_replace('/[!<>?=+@{}_$%]/', '', $address->alias);
if ($result = $address->save()) {
if (isset($address_old) && $address_old->isUsed()) {
$this->context->cart->updateAddressId($address_old->id, $address->id);
} else {
// Update cart address
$this->context->cart->autosetProductAddress();
}
if ($this->ajax) {
$return = array('hasError' => (bool) $this->errors, 'errors' => $this->errors, 'id_address_delivery' => $this->context->cart->id_address_delivery, 'id_address_invoice' => $this->context->cart->id_address_invoice);
die(Tools::jsonEncode($return));
}
if ($back = Tools::getValue('back')) {
$mod = Tools::getValue('mod');
Tools::redirect('index.php?controller=' . $back . ($mod ? '&back=' . $mod : ''));
} else {
Tools::redirect('index.php?controller=addresses');
}
}
$this->errors[] = Tools::displayError('An error occurred while updating your address.');
}
示例11: _processSubmitAddress
protected function _processSubmitAddress($id_address, $type)
{
/*if ($this->context->customer->is_guest)
Tools::redirect('index.php?controller=addresses');*/
if (isset($id_address) && $id_address > 0) {
$address = new Address($id_address);
} else {
$address = new Address();
}
$this->errors = $address->validateController();
// Update address2 and company if they're empty (non mandatory fields) - default validateController ignores them
$fields_to_check = array("address2", "company", "vat_number", "phone", "phone_mobile", "other");
foreach ($fields_to_check as $field1) {
if (Tools::getValue($field1) && trim(Tools::getValue($field1)) == "") {
$address->{$field1} = "";
}
}
if (empty($this->errors)) {
// So that dummyvalue address doesn't get customer id assigned
$address->id_customer = (int) $this->context->customer->id;
}
// Check page token
if ($this->context->customer->isLogged() && !$this->isTokenValid()) {
$this->errors[] = Tools::displayError('Invalid token');
}
// Check phone
if (Configuration::get('PS_ONE_PHONE_AT_LEAST') && !Tools::getValue('phone') && !Tools::getValue('phone_mobile') && !Configuration::get('PS_REGISTRATION_PROCESS_TYPE') && $type == 'delivery') {
$this->errors[] = Tools::displayError('You must register at least one phone number');
}
if ($address->id_country) {
// Check country
if (!($country = new Country($address->id_country)) || !Validate::isLoadedObject($country)) {
throw new PrestaShopException('Country cannot be loaded with address->id_country');
}
if ((int) $country->contains_states && !(int) $address->id_state) {
$this->errors[] = Tools::displayError('This country requires a state selection.');
}
// US customer: normalize the address
if (version_compare(_PS_VERSION_, "1.6.0") < 0 && $address->id_country == Country::getByIso('US')) {
include_once _PS_TAASC_PATH_ . 'AddressStandardizationSolution.php';
$normalize = new AddressStandardizationSolution();
$address->address1 = $normalize->AddressLineStandardization($address->address1);
$address->address2 = $normalize->AddressLineStandardization($address->address2);
}
// Check country zip code
$zip_code_format = $country->zip_code_format;
if ($country->need_zip_code) {
if (($postcode = trim(Tools::getValue('postcode'))) && $zip_code_format) {
if (!$country->checkZipCode($postcode)) {
$this->errors[] = sprintf(Tools::displayError('Zip/Postal code is invalid. Must be typed as follows: %s'), str_replace('C', $country->iso_code, str_replace('N', '0', str_replace('L', 'A', $country->zip_code_format))));
}
} else {
if ($zip_code_format && !$this->context->cart->isVirtualCart()) {
$this->errors[] = Tools::displayError('Zip/Postal code is required.');
} else {
if ($postcode && !preg_match('/^[0-9a-zA-Z -]{4,9}$/ui', $postcode)) {
$this->errors[] = sprintf(Tools::displayError('Zip/Postal code is invalid. Must be typed as follows: %s'), str_replace('C', $country->iso_code, str_replace('N', '0', str_replace('L', 'A', $country->zip_code_format))));
}
}
}
}
// Check country DNI
/*if ($country->isNeedDni() && (!Tools::getValue('dni') || !Validate::isDniLite(Tools::getValue('dni'))))
$this->errors[] = Tools::displayError('Identification number is incorrect or has already been used.');
else if (!$country->isNeedDni())
$address->dni = null;*/
}
if (isset($id_address) && $id_address > 0) {
$alias_id_address = $id_address;
} else {
$alias_id_address = (int) Tools::getValue('id_address');
}
// Check if the alias exists
if (!$this->context->customer->is_guest && Tools::getValue('alias') && (int) $this->context->customer->id > 0 && Db::getInstance()->getValue('
SELECT count(*)
FROM ' . _DB_PREFIX_ . 'address
WHERE `alias` = \'' . pSql(Tools::getValue('alias')) . '\'
AND id_address != ' . $alias_id_address . '
AND id_customer = ' . (int) $this->context->customer->id . '
AND deleted = 0') > 0) {
$address->alias .= '_' . $alias_id_address;
}
//$this->errors[] = sprintf(Tools::displayError('The alias "%s" is already used, please chose another one.'), Tools::safeOutput(Tools::getValue('alias')));
// Check the requires fields which are settings in the BO
$this->errors = array_merge($this->errors, $address->validateFieldsRequiredDatabase());
// Don't continue this process if we have errors !
if ($this->errors) {
if ($this->ajax) {
$return = array('hasError' => (bool) $this->errors, 'errors' => $this->errors, 'id_address_delivery' => $this->context->cart->id_address_delivery, 'id_address_invoice' => $this->context->cart->id_address_invoice);
die(Tools::jsonEncode($return));
} else {
return;
}
}
// If we edit this address, delete old address and create a new one
/*if (Validate::isLoadedObject($this->_address))
{
if (Validate::isLoadedObject($country) && !$country->contains_states)
$address->id_state = 0;
$address_old = $this->_address;
//.........这里部分代码省略.........
示例12: processAddress
/**
* Manage address
*/
public function processAddress()
{
$customer = new Customer();
if (!Tools::getValue('email')) {
return true;
}
if (!$customer->getByEmail(Tools::getValue('email'))) {
$_POST['passwd'] = md5(time() . _COOKIE_KEY_);
$this->errors += $customer->validateController();
$customer->active = 1;
if (empty($this->errors) && !$customer->add()) {
$this->errors[] = Tools::displayError('An error occurred while creating your account.');
}
}
$addresses = $customer->getAddresses($this->context->language->id);
$id_address = null;
foreach ($addresses as $address) {
if ($address['firstname'] != $_POST['firstname']) {
continue;
}
if ($address['lastname'] != $_POST['lastname']) {
continue;
}
if (isset($_POST['city'])) {
if ($address['city'] != $_POST['city']) {
continue;
}
}
if ($address['phone'] != $_POST['phone']) {
continue;
}
$id_address = $address['id_address'];
break;
}
if (!$id_address) {
$address = new Address();
$address->id_customer = $customer->id;
$_POST['id_country'] = 177;
$_POST['alias'] = 'Address ' + count($addresses) + 1;
$_POST['address1'] = 'some address';
$_POST['city'] = 'some city';
$this->errors += $address->validateController();
if (empty($this->errors) && !$address->add()) {
$this->errors[] = Tools::displayError('An error occurred while creating your account.');
} else {
$id_address = $address->id;
$data = array();
$data['email'] = $customer->email;
$data['firstname'] = $customer->firstname;
$data['lastname'] = $customer->lastname;
$data['ip_registration_newsletter'] = !empty($_SERVER['HTTP_CLIENT_IP']) ? $_SERVER['HTTP_CLIENT_IP'] : $_SERVER['REMOTE_ADDR'];
$data['newsletter_date_add'] = date("d.m.y");
$data['phone'] = $address->phone;
function charset($str)
{
if (!$str) {
exit;
}
$charset = mb_detect_encoding($str, "auto");
if ($charset != "UTF-8") {
$str = iconv($charset, 'utf-8', $str);
}
return $str;
}
//ключ доступа к API (из Личного Кабинета)
$api_key = "58priw95sdjt7umw17ixbnkkkudtoq5u7nmfcacy";
// Список контактов
$list = "4734062";
//dev-etagerca
$POST = array('api_key' => $api_key, 'field_names[0]' => 'email', 'field_names[1]' => 'Name', 'field_names[2]' => 'email_request_ip', 'field_names[3]' => 'email_add_time', 'field_names[4]' => 'phone', 'field_names[5]' => 'email_list_ids');
for ($i = 0; $i < 1; $i++) {
$POST['data[' . $i . '][0]'] = $data['email'];
$POST['data[' . $i . '][1]'] = charset($data['firstname']) . ' ' . charset($data['lastname']);
$POST['data[' . $i . '][2]'] = $data['ip_registration_newsletter'];
$POST['data[' . $i . '][3]'] = $data['newsletter_date_add'];
$POST['data[' . $i . '][4]'] = $data['phone'];
$POST['data[' . $i . '][5]'] = $list;
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $POST);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_URL, 'http://api.unisender.com/ru/api/importContacts?format=json');
$result = curl_exec($ch);
// if ($result) {
// // Раскодируем ответ API-сервера
// $jsonObj = json_decode($result);
//
// if(null===$jsonObj) {
// // Ошибка в полученном ответе
// echo "Invalid JSON";
//
// }
// elseif(!empty($jsonObj->error)) {
// // Ошибка импорта
// echo("An error occured: " . $jsonObj->error . "(code: " . $jsonObj->code . ")");
//.........这里部分代码省略.........