本文整理汇总了PHP中Customer::validateController方法的典型用法代码示例。如果您正苦于以下问题:PHP Customer::validateController方法的具体用法?PHP Customer::validateController怎么用?PHP Customer::validateController使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Customer
的用法示例。
在下文中一共展示了Customer::validateController方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: preProcess
public function preProcess()
{
parent::preProcess();
$customer = new Customer((int) self::$cookie->id_customer);
if (isset($_POST['years']) && isset($_POST['months']) && isset($_POST['days'])) {
$customer->birthday = (int) $_POST['years'] . '-' . (int) $_POST['months'] . '-' . (int) $_POST['days'];
}
if (Tools::isSubmit('submitIdentity')) {
if (Module::getInstanceByName('blocknewsletter')->active) {
if (!isset($_POST['optin'])) {
$customer->optin = 0;
}
if (!isset($_POST['newsletter'])) {
$customer->newsletter = 0;
}
}
if (!isset($_POST['id_gender'])) {
$_POST['id_gender'] = 9;
}
if (!@checkdate(Tools::getValue('months'), Tools::getValue('days'), Tools::getValue('years')) && !(Tools::getValue('months') == '' && Tools::getValue('days') == '' && Tools::getValue('years') == '')) {
$this->errors[] = Tools::displayError('Invalid date of birth');
} else {
$customer->birthday = empty($_POST['years']) ? '' : (int) $_POST['years'] . '-' . (int) $_POST['months'] . '-' . (int) $_POST['days'];
$id_customer_exists = (int) Customer::customerExists(Tools::getValue('email'), true, false);
if ($id_customer_exists && $id_customer_exists != (int) self::$cookie->id_customer) {
$this->errors[] = Tools::displayError('An account is already registered with this e-mail.');
}
$_POST['old_passwd'] = trim($_POST['old_passwd']);
if (empty($_POST['old_passwd']) || Tools::encrypt($_POST['old_passwd']) != self::$cookie->passwd) {
$this->errors[] = Tools::displayError('Your password is incorrect.');
} elseif ($_POST['passwd'] != $_POST['confirmation']) {
$this->errors[] = Tools::displayError('Password and confirmation do not match');
} else {
$prev_id_default_group = $customer->id_default_group;
$this->errors = array_unique(array_merge($this->errors, $customer->validateController(true, true)));
}
if (!count($this->errors)) {
$customer->id_default_group = (int) $prev_id_default_group;
$customer->firstname = Tools::ucfirst(Tools::strtolower($customer->firstname));
if (Tools::getValue('passwd')) {
self::$cookie->passwd = $customer->passwd;
}
if ($customer->update()) {
self::$cookie->customer_lastname = $customer->lastname;
self::$cookie->customer_firstname = $customer->firstname;
self::$smarty->assign('confirmation', 1);
} else {
$this->errors[] = Tools::displayError('Cannot update information');
}
}
}
} else {
$_POST = array_map('stripslashes', $customer->getFields());
}
$birthday = $customer->birthday ? explode('-', $customer->birthday) : array('-', '-', '-');
/* Generate years, months and days */
self::$smarty->assign(array('years' => Tools::dateYears(), 'sl_year' => $birthday[0], 'months' => Tools::dateMonths(), 'sl_month' => $birthday[1], 'days' => Tools::dateDays(), 'sl_day' => $birthday[2], 'errors' => $this->errors));
self::$smarty->assign('newsletter', (int) Module::getInstanceByName('blocknewsletter')->active);
}
示例2: handleBuyerRegisterUserPassword
public function handleBuyerRegisterUserPassword($metadata, $request, $encoder)
{
// prepare the fields inside the POST (so we can use Prestashop's validateController)
unset($_POST['email']);
if (isset($request['Buyer']['Username'])) {
$_POST['email'] = $request['Buyer']['Username'];
}
unset($_POST['passwd']);
if (isset($request['Buyer']['Password'])) {
$_POST['passwd'] = $request['Buyer']['Password'];
}
unset($_POST['firstname']);
if (isset($request['Buyer']['FirstName'])) {
$_POST['firstname'] = $request['Buyer']['FirstName'];
}
unset($_POST['lastname']);
if (isset($request['Buyer']['LastName'])) {
$_POST['lastname'] = $request['Buyer']['LastName'];
}
// verify fields are valid
$customer = new Customer();
if (_PS_VERSION_ < '1.5') {
$errors = $customer->validateControler();
} else {
$errors = $customer->validateController();
}
if (is_array($errors) && count($errors) > 0) {
CartAPI_Helpers::dieOnError($encoder, 'RegisterNotAuthorized', CartAPI_Handlers_Helpers::removeHtmlTags($errors[0]));
}
// make sure the customer doesn't already exist
if (Customer::customerExists($_POST['email'])) {
CartAPI_Helpers::dieOnError($encoder, 'RegisterNotAuthorized', CartAPI_Handlers_Helpers::removeHtmlTags(Tools::displayError('An account is already registered with this e-mail, please fill in the password or request a new one.')));
}
// add the new user
$customer->active = 1;
if (property_exists('Customer', 'is_guest')) {
$customer->is_guest = 0;
}
if (!$customer->add()) {
CartAPI_Helpers::dieOnError($encoder, 'RegisterNotAuthorized', CartAPI_Handlers_Helpers::removeHtmlTags(Tools::displayError('An error occurred while creating your account.')));
}
// see if we need to login too
if (!isset($request['Login']) || $request['Login'] == 'true') {
$cookie = $this->syncCookie($customer);
// run the after login events, actually don't since prestashop AuthController doesn't do it
// $this->afterBuyerLogin($customer);
}
// run the after register events
$this->afterBuyerRegister($customer, $request['Buyer']);
}
示例3: 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 ($guest_email = Tools::getValue('guest_email')) {
$_POST['email'] = $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 = Tools::getValue('lastname');
$firstnameAddress = Tools::getValue('firstname');
$_POST['lastname'] = Tools::getValue('customer_lastname', $lastnameAddress);
$_POST['firstname'] = Tools::getValue('customer_firstname', $firstnameAddress);
$addresses_types = array('address');
if (!Configuration::get('PS_ORDER_PROCESS_TYPE') && Configuration::get('PS_GUEST_CHECKOUT_ENABLED') && Tools::getValue('invoice_address')) {
$addresses_types[] = 'address_invoice';
}
$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') || Configuration::get('PS_REGISTRATION_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 = $this->errors + $customer->validateFieldsRequiredDatabase();
if (!Configuration::get('PS_REGISTRATION_PROCESS_TYPE') && !$this->ajax && !Tools::isSubmit('submitGuestAccount')) {
if (!count($this->errors)) {
$this->processCustomerNewsletter($customer);
$customer->firstname = Tools::ucwords($customer->firstname);
$customer->birthday = empty($_POST['years']) ? '' : (int) Tools::getValue('years') . '-' . (int) Tools::getValue('months') . '-' . (int) Tools::getValue('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));
$this->ajaxDie(Tools::jsonEncode($return));
}
if (($back = Tools::getValue('back')) && $back == Tools::secureReferrer($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) {
$multi = (int) Tools::getValue('multi-shipping');
Tools::redirect('index.php?controller=order' . ($multi ? '&multi-shipping=' . $multi : ''));
} else {
Tools::redirect('index.php?controller=' . ($this->authRedirection !== false ? urlencode($this->authRedirection) : 'my-account'));
}
} else {
$this->errors[] = Tools::displayError('An error occurred while creating your account.');
}
}
}
} else {
// if registration type is in one step, we save the address
$_POST['lastname'] = $lastnameAddress;
$_POST['firstname'] = $firstnameAddress;
$post_back = $_POST;
// Preparing addresses
foreach ($addresses_types as $addresses_type) {
${$addresses_type} = new Address();
//.........这里部分代码省略.........
示例4: 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');
}
}
}
}
//.........这里部分代码省略.........
示例5: createCustomerGuestAccount
public function createCustomerGuestAccount($encoder, $buyerDictionary, $addressDictionary = array())
{
global $cookie;
// taken from AuthController
// no need to create if already logged in and has a customer id
if ($cookie->logged && $cookie->id_customer) {
return;
}
// make sure we can create a guest account
if (!Configuration::get('PS_GUEST_CHECKOUT_ENABLED')) {
CartAPI_Helpers::dieOnError($encoder, 'RegisterNotAuthorized', CartAPI_Handlers_Helpers::removeHtmlTags(Tools::displayError('You cannot create a guest account.')));
}
// prepare the fields inside the POST (so we can use Prestashop's validateController)
unset($_POST['email']);
if (isset($buyerDictionary['Email'])) {
$_POST['email'] = $buyerDictionary['Email'];
}
unset($_POST['passwd']);
$_POST['passwd'] = md5(time() . _COOKIE_KEY_);
unset($_POST['firstname']);
if (isset($addressDictionary['FirstName'])) {
$_POST['firstname'] = $addressDictionary['FirstName'];
}
// take from address as backup
if (isset($buyerDictionary['FirstName'])) {
$_POST['firstname'] = $buyerDictionary['FirstName'];
}
// take from buyer if given
unset($_POST['lastname']);
if (isset($addressDictionary['LastName'])) {
$_POST['lastname'] = $addressDictionary['LastName'];
}
// take from address as backup
if (isset($buyerDictionary['LastName'])) {
$_POST['lastname'] = $buyerDictionary['LastName'];
}
// take from buyer if given
// verify fields are valid
$customer = new Customer();
if (_PS_VERSION_ < '1.5') {
$errors = $customer->validateControler();
} else {
$errors = $customer->validateController();
}
if (is_array($errors) && count($errors) > 0) {
CartAPI_Helpers::dieOnError($encoder, 'RegisterNotAuthorized', CartAPI_Handlers_Helpers::removeHtmlTags($errors[0]));
}
// add the new user
$customer->active = 1;
$customer->is_guest = 1;
if (!$customer->add()) {
CartAPI_Helpers::dieOnError($encoder, 'RegisterNotAuthorized', CartAPI_Handlers_Helpers::removeHtmlTags(Tools::displayError('An error occurred while creating your account.')));
}
// sync the cookie
$loginHandler = CartAPI_Handlers_Helpers::newHandlerInstance($encoder, 'Login');
$loginHandler->syncCookie($customer);
}
示例6: postProcess
/**
* Start forms process
* @see FrontController::postProcess()
*/
public function postProcess()
{
$origin_newsletter = (bool) $this->customer->newsletter;
if (Tools::isSubmit('submitIdentity')) {
$email = trim(Tools::getValue('email'));
if (Tools::getValue('months') != '' && Tools::getValue('days') != '' && Tools::getValue('years') != '') {
$this->customer->birthday = (int) Tools::getValue('years') . '-' . (int) Tools::getValue('months') . '-' . (int) Tools::getValue('days');
} elseif (Tools::getValue('months') == '' && Tools::getValue('days') == '' && Tools::getValue('years') == '') {
$this->customer->birthday = null;
} else {
$this->errors[] = Tools::displayError('Invalid date of birth.');
}
if (Tools::getIsset('old_passwd')) {
$old_passwd = trim(Tools::getValue('old_passwd'));
}
if (!Validate::isEmail($email)) {
$this->errors[] = Tools::displayError('This email address is not valid');
} elseif ($this->customer->email != $email && Customer::customerExists($email, true)) {
$this->errors[] = Tools::displayError('An account using this email address has already been registered.');
} elseif (!Tools::getIsset('old_passwd') || Tools::encrypt($old_passwd) != $this->context->cookie->passwd) {
$this->errors[] = Tools::displayError('The password you entered is incorrect.');
} elseif (Tools::getValue('passwd') != Tools::getValue('confirmation')) {
$this->errors[] = Tools::displayError('The password and confirmation do not match.');
} else {
$prev_id_default_group = $this->customer->id_default_group;
// Merge all errors of this file and of the Object Model
$this->errors = array_merge($this->errors, $this->customer->validateController());
}
if (!count($this->errors)) {
$this->customer->id_default_group = (int) $prev_id_default_group;
$this->customer->firstname = Tools::ucwords($this->customer->firstname);
if (Configuration::get('PS_B2B_ENABLE')) {
$this->customer->website = Tools::getValue('website');
// force update of website, even if box is empty, this allows user to remove the website
$this->customer->company = Tools::getValue('company');
}
if (!Tools::getIsset('newsletter')) {
$this->customer->newsletter = 0;
} elseif (!$origin_newsletter && Tools::getIsset('newsletter')) {
if ($module_newsletter = Module::getInstanceByName('blocknewsletter')) {
/** @var Blocknewsletter $module_newsletter */
if ($module_newsletter->active) {
$module_newsletter->confirmSubscription($this->customer->email);
}
}
}
if (!Tools::getIsset('optin')) {
$this->customer->optin = 0;
}
if (Tools::getValue('passwd')) {
$this->context->cookie->passwd = $this->customer->passwd;
}
if ($this->customer->update()) {
$this->context->cookie->customer_lastname = $this->customer->lastname;
$this->context->cookie->customer_firstname = $this->customer->firstname;
$this->context->smarty->assign('confirmation', 1);
} else {
$this->errors[] = Tools::displayError('The information cannot be updated.');
}
}
} else {
$_POST = array_map('stripslashes', $this->customer->getFields());
}
return $this->customer;
}
示例7: init
//.........这里部分代码省略.........
if (Tools::getValue('method') == 'redirectAuthentication') {
Tools::redirect($goto);
} else {
echo $goto;
}
}
} else {
if (AmazonPaymentsCustomerHelper::findByEmailAddress($customer_email)) {
$this->context->cookie->amzConnectEmail = $customer_email;
$this->context->cookie->amzConnectCustomerId = $customer_userid;
$goto = $this->context->link->getModuleLink('amzpayments', 'connect_accounts');
if (Tools::getValue('action') && Tools::getValue('action') == 'checkout') {
if (strpos($goto, '?') > 0) {
$goto .= '&checkout=1';
} else {
$goto .= '?checkout=1';
}
}
if (Tools::getValue('method') == 'redirectAuthentication') {
Tools::redirect($goto);
} else {
echo $goto;
}
} else {
// Customer does not exist - Create account
Hook::exec('actionBeforeSubmitAccount');
$this->create_account = true;
$_POST['passwd'] = md5(time() . _COOKIE_KEY_);
$firstname = '';
$lastname = '';
$customer_name = preg_replace("/[0-9]/", "", $customer_name);
if (strpos(trim($customer_name), ' ') !== false) {
list($firstname, $lastname) = explode(' ', trim($customer_name));
} elseif (strpos(trim($customer_name), '-') !== false) {
list($firstname, $lastname) = explode('-', trim($customer_name));
} else {
$firstname = trim($customer_name);
$lastname = 'Placeholder';
}
$customer = new Customer();
$customer->email = $customer_email;
$lastname_address = $lastname;
$firstname_address = $firstname;
$_POST['lastname'] = Tools::getValue('customer_lastname', $lastname_address);
$_POST['firstname'] = Tools::getValue('customer_firstname', $firstname_address);
// $addresses_types = array('address');
$this->errors = array_unique(array_merge($this->errors, $customer->validateController()));
// Check the requires fields which are settings in the BO
$this->errors = $this->errors + $customer->validateFieldsRequiredDatabase();
if (!count($this->errors)) {
$customer->firstname = Tools::ucwords($customer->firstname);
$customer->is_guest = 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.');
}
}
AmazonPaymentsCustomerHelper::saveCustomersAmazonReference($customer, $customer_userid);
$this->updateContext($customer);
$this->context->cart->update();
Hook::exec('actionCustomerAccountAdd', array('_POST' => $_POST, 'newCustomer' => $customer));
if (Tools::getValue('action') == 'fromCheckout' && isset($this->context->cookie->amz_connect_order)) {
AmzPayments::switchOrderToCustomer($customer->id, $this->context->cookie->amz_connect_order, true);
}
if (Tools::getValue('action') == 'checkout') {
$goto = $this->context->link->getModuleLink('amzpayments', 'amzpayments');
} elseif (Tools::getValue('action') == 'fromCheckout') {
$goto = 'index.php?controller=history';
} elseif ($this->context->cart->nbProducts()) {
$goto = 'index.php?controller=order';
} else {
if (Configuration::get('PS_SSL_ENABLED')) {
$goto = _PS_BASE_URL_SSL_ . __PS_BASE_URI__;
} else {
$goto = _PS_BASE_URL_ . __PS_BASE_URI__;
}
}
if (Tools::getValue('method') == 'redirectAuthentication') {
Tools::redirect($goto);
} else {
echo $goto;
}
} else {
$this->errors[] = Tools::displayError('An error occurred while creating your account.');
}
}
} else {
error_log('Error validating customers informations');
die('error');
}
}
}
die;
}
}
}
}
示例8: 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 . ")");
//.........这里部分代码省略.........