本文整理汇总了PHP中PrestaShopLogger类的典型用法代码示例。如果您正苦于以下问题:PHP PrestaShopLogger类的具体用法?PHP PrestaShopLogger怎么用?PHP PrestaShopLogger使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了PrestaShopLogger类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: addQuickLink
public function addQuickLink()
{
if (!isset($this->className) || empty($this->className)) {
return false;
}
$this->validateRules();
if (count($this->errors) <= 0) {
$this->object = new $this->className();
$this->copyFromPost($this->object, $this->table);
$exists = Db::getInstance()->getValue('SELECT id_quick_access FROM ' . _DB_PREFIX_ . 'quick_access WHERE link = "' . pSQL($this->object->link) . '"');
if ($exists) {
return true;
}
$this->beforeAdd($this->object);
if (method_exists($this->object, 'add') && !$this->object->add()) {
$this->errors[] = Tools::displayError('An error occurred while creating an object.') . ' <b>' . $this->table . ' (' . Db::getInstance()->getMsgError() . ')</b>';
} elseif (($_POST[$this->identifier] = $this->object->id) && $this->postImage($this->object->id) && !count($this->errors) && $this->_redirect) {
PrestaShopLogger::addLog(sprintf($this->l('%s addition', 'AdminTab', false, false), $this->className), 1, null, $this->className, (int) $this->object->id, true, (int) $this->context->employee->id);
$this->afterAdd($this->object);
}
}
$this->errors = array_unique($this->errors);
if (!empty($this->errors)) {
$this->errors['has_errors'] = true;
$this->ajaxDie(Tools::jsonEncode($this->errors));
return false;
}
return $this->getQuickAccessesList();
}
示例2: addLog
/**
* add a log item to the database and send a mail if configured for this $severity
*
* @param string $message the log message
* @param int $severity
* @param int $error_code
* @param string $object_type
* @param int $object_id
* @param bool $allow_duplicate if set to true, can log several time the same information (not recommended)
* @return bool true if succeed
*/
public static function addLog($message, $severity = 1, $error_code = null, $object_type = null, $object_id = null, $allow_duplicate = false, $id_employee = null)
{
$log = new PrestaShopLogger();
$log->severity = (int) $severity;
$log->error_code = (int) $error_code;
$log->message = pSQL($message);
$log->date_add = date('Y-m-d H:i:s');
$log->date_upd = date('Y-m-d H:i:s');
if ($id_employee === null && isset(Context::getContext()->employee) && Validate::isLoadedObject(Context::getContext()->employee)) {
$id_employee = Context::getContext()->employee->id;
}
if ($id_employee !== null) {
$log->id_employee = (int) $id_employee;
}
if (!empty($object_type) && !empty($object_id)) {
$log->object_type = pSQL($object_type);
$log->object_id = (int) $object_id;
}
if ($object_type != 'Swift_Message') {
PrestaShopLogger::sendByMail($log);
}
if ($allow_duplicate || !$log->_isPresent()) {
$res = $log->add();
if ($res) {
self::$is_present[$log->getHash()] = isset(self::$is_present[$log->getHash()]) ? self::$is_present[$log->getHash()] + 1 : 1;
return true;
}
}
return false;
}
示例3: postProcess
/**
* @see FrontController::postProcess()
*/
public function postProcess()
{
// Log requests from Privat API side in Debug mode.
if (Configuration::get('PRIVAT24_DEBUG_MODE')) {
$logger = new FileLogger();
$logger->setFilename(_PS_ROOT_DIR_ . '/log/' . $this->module->name . '_' . date('Ymd_His') . '_response.log');
$logger->logError($_POST);
}
$payment = array();
parse_str(Tools::getValue('payment'), $payment);
$hash = sha1(md5(Tools::getValue('payment') . $this->module->merchant_password));
if ($payment && $hash === Tools::getValue('signature')) {
if ($payment['state'] == 'ok') {
$state = Configuration::get('PRIVAT24_WAITINGPAYMENT_OS');
$cart_id = (int) $payment['order'];
$order = new Order(Order::getOrderByCartId($cart_id));
if (!Validate::isLoadedObject($order)) {
PrestaShopLogger::addLog('Privat24: cannot get order by cart id ' . $cart_id, 3);
die;
}
if ($order->getCurrentState() != $state) {
PrestaShopLogger::addLog(sprintf('Privat24: order id %s current state %s !== expected state %s', $order->id, $order->getCurrentState(), $state), 3);
die;
}
// Check paid currency and paid amount.
$id_currency = Currency::getIdByIsoCode($payment['ccy']);
if (!$id_currency) {
PrestaShopLogger::addLog(sprintf('Privat24: order id %s cannot get currency id by iso code: %s', $order->id, $payment['ccy']), 3);
die;
}
if ($order->id_currency != $id_currency) {
PrestaShopLogger::addLog(sprintf('Privat 24: order id %s, order currency id %s does not match with %s', $order->id, $order->id_currency, $id_currency), 3);
die;
}
if ((double) $order->total_paid != (double) $payment['amt']) {
PrestaShopLogger::addLog(sprintf('Privat 24: order id %s order total paid %s does not match %s', $order->id, $order->total_paid, $payment['amt']), 3);
die;
}
$order_history = new OrderHistory();
$order_history->id_order = $order->id;
$order_history->changeIdOrderState(_PS_OS_PAYMENT_, $order->id);
$order_history->addWithemail();
$this->setPaymentTransaction($order, $payment);
$this->module->paymentNotify($order, $payment);
PrestaShopLogger::addLog(sprintf('Privat24 payment accepted: order id: %s, amount: %s, ref: %s', $order->id, $payment['amt'], $payment['ref']), 1);
} else {
PrestaShopLogger::addLog(sprintf('Privat24 payment failed: state: %s, order: %s, ref: %s', $payment['state'], $payment['order'], $payment['ref']), 3, null, null, null, true);
}
} else {
PrestaShopLogger::addLog('Privat24: Payment callback bad signature.', 3, null, null, null, true);
}
die;
}
示例4: displayTechnicalError
/**
* Displays message about occured technical error.
*
* @param Exception $ex Error cause.
*/
protected function displayTechnicalError(Exception $ex)
{
PrestaShopLogger::addLog((string) $ex, 50);
$this->context->smarty->assign('error_message', $this->module->l('Technical error occured'));
if ($this->context->customer->is_guest) {
$this->context->smarty->assign(array('reference_order' => $this->module->currentOrderReference, 'email' => $this->context->customer->email));
/* If guest we clear the cookie for security reason */
$this->context->customer->mylogout();
}
$this->setTemplate('payment_error.tpl');
parent::display();
}
示例5: displayAjax
public function displayAjax()
{
if (Configuration::get('MERCADOPAGO_LOG') == 'true') {
PrestaShopLogger::addLog('Debug Mode :: displayAjax - topic = ' . Tools::getValue('topic'), MP::INFO, 0);
PrestaShopLogger::addLog('Debug Mode :: displayAjax - id = ' . Tools::getValue('id'), MP::INFO, 0);
PrestaShopLogger::addLog('Debug Mode :: displayAjax - checkout = ' . Tools::getValue('checkout'), MP::INFO, 0);
}
if (Tools::getValue('topic') && Tools::getValue('id')) {
$mercadopago = new MercadoPago();
$mercadopago->listenIPN(Tools::getValue('checkout'), Tools::getValue('topic'), Tools::getValue('id'));
}
}
示例6: processUpdate
public function processUpdate()
{
$existing_offer = $this->object;
$this->checkOffer();
if (!empty($this->errors)) {
$this->display = 'edit';
return false;
}
$id = (int) Tools::getValue('id_' . $this->table);
/* Update an existing offer */
if (isset($id) && !empty($id)) {
/** @var Product $object */
$object = new $this->className((int) $id);
$this->object = $object;
if (Validate::isLoadedObject($object)) {
$this->copyFromPost($object, $this->table);
$object->indexed = 0;
if ($object->update()) {
PrestaShopLogger::addLog(sprintf($this->l('%s modification', 'AdminTab', false, false), $this->className), 1, null, $this->className, (int) $this->object->id, true, (int) $this->context->employee->id);
if (in_array(Shop::getContext(), array(Shop::CONTEXT_SHOP, Shop::CONTEXT_ALL))) {
if ($this->isTabSubmitted('Products')) {
$this->updateProducts($object);
$this->updateCustomPrices($object);
}
if ($this->isTabSubmitted('Shops')) {
$this->updateShops($object);
$this->updateCustomPrices($object);
}
if ($this->isTabSubmitted('Images')) {
$this->processImageLegends();
}
}
if (empty($this->errors)) {
$page = (int) Tools::getValue('page');
// Save and stay on same form
if ($this->display == 'edit') {
$this->confirmations[] = $this->l('Update successful');
$this->redirect_after = self::$currentIndex . '&id_offer=' . (int) $this->object->id . '&updateoffer&conf=4&key_tab=' . Tools::safeOutput(Tools::getValue('key_tab')) . ($page > 1 ? '&page=' . (int) $page : '') . '&token=' . $this->token;
} else {
// Default behavior (save and back)
$this->redirect_after = self::$currentIndex . '&conf=4' . ($page > 1 ? '&submitFilteroffer=' . (int) $page : '') . '&token=' . $this->token;
}
} else {
$this->display = 'edit';
}
} else {
$this->errors[] = Tools::displayError('An error occurred while updating an object.') . ' <b>' . $this->table . '</b> (' . Db::getInstance()->getMsgError() . ')';
}
} else {
$this->errors[] = Tools::displayError('An error occurred while updating an object.') . ' <b>' . $this->table . '</b> (' . Tools::displayError('The object cannot be loaded. ') . ')';
}
return $object;
}
}
示例7: catchUrls
public function catchUrls()
{
if (Tools::getValue('ajax') && (bool) Tools::getValue('ajax') == true) {
return;
}
// Setup
$uri_var = $this->formatLink($_SERVER['REQUEST_URI']);
$id_shop = Shop::getContextShopID();
$db = Db::getInstance();
$redir = array();
$cache_enabled = (bool) Configuration::get('MGRT_URLCACHE');
$cache_name = 'MR1_' . $id_shop . '_' . Tools::str2url($uri_var);
$cache_file = $this->cache_folder . md5($cache_name);
// Better checking this before
if ($cache_enabled === true && is_writable(_PS_CACHE_DIR_) && file_exists($this->cache_folder)) {
$time_cache = (int) Configuration::get('MGRT_CACHETIME');
if (file_exists($cache_file) && filemtime($cache_file) > time() - $time_cache * 60) {
$datas = Tools::file_get_contents($cache_file);
$redir = unserialize($datas);
return $this->makeRedirection($redir);
}
}
$sql_redir = $db->getRow('SELECT * FROM ' . _DB_PREFIX_ . 'redirect r, ' . _DB_PREFIX_ . 'redirect_shop rs WHERE rs.id_redirect = r.id_redirect AND r.old = "' . pSQL($uri_var) . '" AND rs.id_shop = ' . (int) $id_shop . ' AND r.active = 1 AND r.regex = 0 ORDER BY date_upd DESC');
if (empty($sql_redir)) {
$sql_regex = $db->executeS('SELECT * FROM ' . _DB_PREFIX_ . 'redirect r, ' . _DB_PREFIX_ . 'redirect_shop rs WHERE rs.id_redirect = r.id_redirect AND rs.id_shop = ' . (int) $id_shop . ' AND r.active = 1 AND r.regex = 1 ORDER BY date_upd DESC');
$before = '/\\';
$after = '/i';
if (!empty($sql_regex)) {
foreach ($sql_regex as $value) {
$test = preg_match($before . $value['old'] . $after, $uri_var);
if ((bool) $test === true) {
$redir['new'] = preg_replace($before . $value['old'] . $after, $value['new'], $uri_var);
$redir['type'] = $value['type'];
break;
}
}
}
} else {
// Match
$redir = $sql_redir;
}
if ($cache_enabled === true && is_writable(_PS_CACHE_DIR_) && file_exists($this->cache_folder)) {
try {
file_put_contents($cache_file, serialize($redir), LOCK_EX);
} catch (Exception $e) {
PrestaShopLogger::addLog('Redirect Cache folder not writable, please check your modules folder permissions.');
}
}
$this->makeRedirection($redir);
}
示例8: validateOrder
public function validateOrder($id_cart, $id_order_state, $amount_paid, $payment_method = 'Unknown', $message = null, $extra_vars = array(), $currency_special = null, $dont_touch_amount = false, $secure_key = false, Shop $shop = null)
{
if (self::DEBUG_MODE) {
PrestaShopLogger::addLog('PaymentModule::validateOrder - Function called', 1, null, 'Cart', (int) $id_cart, true);
}
if (!isset($this->context)) {
$this->context = Context::getContext();
}
$this->context->cart = new Cart($id_cart);
$this->context->customer = new Customer($this->context->cart->id_customer);
// The tax cart is loaded before the customer so re-cache the tax calculation method
$this->context->cart->setTaxCalculationMethod();
$this->context->language = new Language($this->context->cart->id_lang);
$this->context->shop = $shop ? $shop : new Shop($this->context->cart->id_shop);
ShopUrl::resetMainDomainCache();
$id_currency = $currency_special ? (int) $currency_special : (int) $this->context->cart->id_currency;
$this->context->currency = new Currency($id_currency, null, $this->context->shop->id);
if (Configuration::get('PS_TAX_ADDRESS_TYPE') == 'id_address_delivery') {
$context_country = $this->context->country;
}
$order_status = new OrderState((int) $id_order_state, (int) $this->context->language->id);
if (!Validate::isLoadedObject($order_status)) {
PrestaShopLogger::addLog('PaymentModule::validateOrder - Order Status cannot be loaded', 3, null, 'Cart', (int) $id_cart, true);
throw new PrestaShopException('Can\'t load Order status');
}
if (!$this->active) {
PrestaShopLogger::addLog('PaymentModule::validateOrder - Module is not active', 3, null, 'Cart', (int) $id_cart, true);
die(Tools::displayError());
}
// Does order already exists ?
if (Validate::isLoadedObject($this->context->cart) && $this->context->cart->OrderExists() == false) {
if ($secure_key !== false && $secure_key != $this->context->cart->secure_key) {
PrestaShopLogger::addLog('PaymentModule::validateOrder - Secure key does not match', 3, null, 'Cart', (int) $id_cart, true);
die(Tools::displayError());
}
// For each package, generate an order
$delivery_option_list = $this->context->cart->getDeliveryOptionList();
$package_list = $this->context->cart->getPackageList();
$cart_delivery_option = $this->context->cart->getDeliveryOption();
// If some delivery options are not defined, or not valid, use the first valid option
foreach ($delivery_option_list as $id_address => $package) {
if (!isset($cart_delivery_option[$id_address]) || !array_key_exists($cart_delivery_option[$id_address], $package)) {
foreach ($package as $key => $val) {
$cart_delivery_option[$id_address] = $key;
break;
}
}
}
$order_list = array();
$order_detail_list = array();
do {
$reference = Order::generateReference();
} while (Order::getByReference($reference)->count());
$this->currentOrderReference = $reference;
$order_creation_failed = false;
$cart_total_paid = (double) Tools::ps_round((double) $this->context->cart->getOrderTotal(true, Cart::BOTH), 2);
foreach ($cart_delivery_option as $id_address => $key_carriers) {
foreach ($delivery_option_list[$id_address][$key_carriers]['carrier_list'] as $id_carrier => $data) {
foreach ($data['package_list'] as $id_package) {
// Rewrite the id_warehouse
$package_list[$id_address][$id_package]['id_warehouse'] = (int) $this->context->cart->getPackageIdWarehouse($package_list[$id_address][$id_package], (int) $id_carrier);
$package_list[$id_address][$id_package]['id_carrier'] = $id_carrier;
}
}
}
// Make sure CartRule caches are empty
CartRule::cleanCache();
$cart_rules = $this->context->cart->getCartRules();
foreach ($cart_rules as $cart_rule) {
if (($rule = new CartRule((int) $cart_rule['obj']->id)) && Validate::isLoadedObject($rule)) {
if ($error = $rule->checkValidity($this->context, true, true)) {
$this->context->cart->removeCartRule((int) $rule->id);
if (isset($this->context->cookie) && isset($this->context->cookie->id_customer) && $this->context->cookie->id_customer && !empty($rule->code)) {
if (Configuration::get('PS_ORDER_PROCESS_TYPE') == 1) {
Tools::redirect('index.php?controller=order-opc&submitAddDiscount=1&discount_name=' . urlencode($rule->code));
}
Tools::redirect('index.php?controller=order&submitAddDiscount=1&discount_name=' . urlencode($rule->code));
} else {
$rule_name = isset($rule->name[(int) $this->context->cart->id_lang]) ? $rule->name[(int) $this->context->cart->id_lang] : $rule->code;
$error = Tools::displayError(sprintf('CartRule ID %1s (%2s) used in this cart is not valid and has been withdrawn from cart', (int) $rule->id, $rule_name));
PrestaShopLogger::addLog($error, 3, '0000002', 'Cart', (int) $this->context->cart->id);
}
}
}
}
foreach ($package_list as $id_address => $packageByAddress) {
foreach ($packageByAddress as $id_package => $package) {
$order = new Order();
$order->product_list = $package['product_list'];
if (Configuration::get('PS_TAX_ADDRESS_TYPE') == 'id_address_delivery') {
$address = new Address($id_address);
$this->context->country = new Country($address->id_country, $this->context->cart->id_lang);
if (!$this->context->country->active) {
throw new PrestaShopException('The delivery address country is not active.');
}
}
$carrier = null;
if (!$this->context->cart->isVirtualCart() && isset($package['id_carrier'])) {
$carrier = new Carrier($package['id_carrier'], $this->context->cart->id_lang);
$order->id_carrier = (int) $carrier->id;
//.........这里部分代码省略.........
示例9: processDelete
public function processDelete()
{
if (PrestaShopLogger::eraseAllLogs()) {
Tools::redirectAdmin(Context::getContext()->link->getAdminLink('AdminLogs'));
}
}
示例10: smartyTranslate
function smartyTranslate($params, &$smarty)
{
global $_LANG;
if (!isset($params['js'])) {
$params['js'] = false;
}
if (!isset($params['pdf'])) {
$params['pdf'] = false;
}
if (!isset($params['mod'])) {
$params['mod'] = false;
}
if (!isset($params['sprintf'])) {
$params['sprintf'] = array();
}
if (!isset($params['d'])) {
$params['d'] = null;
}
if (!is_null($params['d'])) {
if (isset($params['tags'])) {
$backTrace = debug_backtrace();
$errorMessage = sprintf('Unable to translate "%s" in %s. tags() is not supported anymore, please use sprintf().', $params['s'], $backTrace[0]['args'][1]->template_resource);
if (_PS_MODE_DEV_) {
throw new Exception($errorMessage);
} else {
PrestaShopLogger::addLog($errorMessage);
}
}
if (!is_array($params['sprintf'])) {
$backTrace = debug_backtrace();
$errorMessage = sprintf('Unable to translate "%s" in %s. sprintf() parameter should be an array.', $params['s'], $backTrace[0]['args'][1]->template_resource);
if (_PS_MODE_DEV_) {
throw new Exception($errorMessage);
} else {
PrestaShopLogger::addLog($errorMessage);
return $params['s'];
}
}
}
if (($translation = Context::getContext()->getTranslator()->trans($params['s'], $params['sprintf'], $params['d'])) !== $params['s']) {
return $translation;
}
$string = str_replace('\'', '\\\'', $params['s']);
$filename = !isset($smarty->compiler_object) || !is_object($smarty->compiler_object->template) ? $smarty->template_resource : $smarty->compiler_object->template->getTemplateFilepath();
$basename = basename($filename, '.tpl');
$key = $basename . '_' . md5($string);
if (isset($smarty->source) && strpos($smarty->source->filepath, DIRECTORY_SEPARATOR . 'override' . DIRECTORY_SEPARATOR) !== false) {
$key = 'override_' . $key;
}
if ($params['mod']) {
return Translate::smartyPostProcessTranslation(Translate::getModuleTranslation($params['mod'], $params['s'], $basename, $params['sprintf'], $params['js']), $params);
} elseif ($params['pdf']) {
return Translate::smartyPostProcessTranslation(Translate::getPdfTranslation($params['s'], $params['sprintf']), $params);
}
if ($_LANG != null && isset($_LANG[$key])) {
$msg = $_LANG[$key];
} elseif ($_LANG != null && isset($_LANG[Tools::strtolower($key)])) {
$msg = $_LANG[Tools::strtolower($key)];
} else {
$msg = $params['s'];
}
if ($msg != $params['s'] && !$params['js']) {
$msg = stripslashes($msg);
} elseif ($params['js']) {
$msg = addslashes($msg);
}
if ($params['sprintf'] !== null) {
$msg = Translate::checkAndReplaceArgs($msg, $params['sprintf']);
}
return Translate::smartyPostProcessTranslation($params['js'] ? $msg : Tools::safeOutput($msg), $params);
}
示例11: processDelete
public function processDelete()
{
return PrestaShopLogger::eraseAllLogs();
}
示例12: init
//.........这里部分代码省略.........
$this->context->country = $new_default;
}
} elseif (Configuration::get('PS_DETECT_COUNTRY')) {
$has_currency = isset($this->context->cookie->id_currency) && (int) $this->context->cookie->id_currency;
$has_country = isset($this->context->cookie->iso_code_country) && $this->context->cookie->iso_code_country;
$has_address_type = false;
if ((int) $this->context->cookie->id_cart && ($cart = new Cart($this->context->cookie->id_cart)) && Validate::isLoadedObject($cart)) {
$has_address_type = isset($cart->{Configuration::get('PS_TAX_ADDRESS_TYPE')}) && $cart->{Configuration::get('PS_TAX_ADDRESS_TYPE')};
}
if ((!$has_currency || $has_country) && !$has_address_type) {
$id_country = $has_country && !Validate::isLanguageIsoCode($this->context->cookie->iso_code_country) ? (int) Country::getByIso(strtoupper($this->context->cookie->iso_code_country)) : (int) Tools::getCountry();
$country = new Country($id_country, (int) $this->context->cookie->id_lang);
if (!$has_currency && validate::isLoadedObject($country) && $this->context->country->id !== $country->id) {
$this->context->country = $country;
$this->context->cookie->id_currency = (int) Currency::getCurrencyInstance($country->id_currency ? (int) $country->id_currency : (int) Configuration::get('PS_CURRENCY_DEFAULT'))->id;
$this->context->cookie->iso_code_country = strtoupper($country->iso_code);
}
}
}
$currency = Tools::setCurrency($this->context->cookie);
if (isset($_GET['logout']) || $this->context->customer->logged && Customer::isBanned($this->context->customer->id)) {
$this->context->customer->logout();
Tools::redirect(isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null);
} elseif (isset($_GET['mylogout'])) {
$this->context->customer->mylogout();
Tools::redirect(isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null);
}
/* Cart already exists */
if ((int) $this->context->cookie->id_cart) {
if (!isset($cart)) {
$cart = new Cart($this->context->cookie->id_cart);
}
if (Validate::isLoadedObject($cart) && $cart->OrderExists()) {
PrestaShopLogger::addLog('Frontcontroller::init - Cart cannot be loaded or an order has already been placed using this cart', 1, null, 'Cart', (int) $this->context->cookie->id_cart, true);
unset($this->context->cookie->id_cart, $cart, $this->context->cookie->checkedTOS);
$this->context->cookie->check_cgv = false;
} elseif (intval(Configuration::get('PS_GEOLOCATION_ENABLED')) && !in_array(strtoupper($this->context->cookie->iso_code_country), explode(';', Configuration::get('PS_ALLOWED_COUNTRIES'))) && $cart->nbProducts() && intval(Configuration::get('PS_GEOLOCATION_NA_BEHAVIOR')) != -1 && !FrontController::isInWhitelistForGeolocation() && !in_array($_SERVER['SERVER_NAME'], array('localhost', '127.0.0.1'))) {
/* Delete product of cart, if user can't make an order from his country */
PrestaShopLogger::addLog('Frontcontroller::init - GEOLOCATION is deleting a cart', 1, null, 'Cart', (int) $this->context->cookie->id_cart, true);
unset($this->context->cookie->id_cart, $cart);
} elseif ($this->context->cookie->id_customer != $cart->id_customer || $this->context->cookie->id_lang != $cart->id_lang || $currency->id != $cart->id_currency) {
// update cart values
if ($this->context->cookie->id_customer) {
$cart->id_customer = (int) $this->context->cookie->id_customer;
}
$cart->id_lang = (int) $this->context->cookie->id_lang;
$cart->id_currency = (int) $currency->id;
$cart->update();
}
/* Select an address if not set */
if (isset($cart) && (!isset($cart->id_address_delivery) || $cart->id_address_delivery == 0 || !isset($cart->id_address_invoice) || $cart->id_address_invoice == 0) && $this->context->cookie->id_customer) {
$to_update = false;
if (!isset($cart->id_address_delivery) || $cart->id_address_delivery == 0) {
$to_update = true;
$cart->id_address_delivery = (int) Address::getFirstCustomerAddressId($cart->id_customer);
}
if (!isset($cart->id_address_invoice) || $cart->id_address_invoice == 0) {
$to_update = true;
$cart->id_address_invoice = (int) Address::getFirstCustomerAddressId($cart->id_customer);
}
if ($to_update) {
$cart->update();
}
}
}
if (!isset($cart) || !$cart->id) {
示例13: hookActionOrderReturn
public function hookActionOrderReturn($params)
{
try {
if ($this->isActive()) {
$url = $this->getApiUrl('/prestashop/webhook-order-return', true);
$body = Tools::jsonEncode($params);
$this->webhook($url, $body);
}
} catch (Exception $exception) {
$orderReturn = $params['orderReturn'];
$id_order = $orderReturn->id_order;
$message = 'Darwinpricing::hookActionOrderReturn - Cannot send order return details';
PrestaShopLogger::addLog($message, 3, null, 'Order', $id_order);
}
}
示例14: smartyTranslate
function smartyTranslate($params, &$smarty)
{
$htmlentities = !isset($params['js']);
$pdf = isset($params['pdf']);
$addslashes = isset($params['slashes']) || isset($params['js']);
$sprintf = isset($params['sprintf']) ? $params['sprintf'] : array();
if (!empty($params['d'])) {
if (isset($params['tags'])) {
$backTrace = debug_backtrace();
$errorMessage = sprintf('Unable to translate "%s" in %s. tags() is not supported anymore, please use sprintf().', $params['s'], $backTrace[0]['args'][1]->template_resource);
if (_PS_MODE_DEV_) {
throw new Exception($errorMessage);
} else {
PrestaShopLogger::addLog($errorMessage);
}
}
if (!is_array($sprintf)) {
$backTrace = debug_backtrace();
$errorMessage = sprintf('Unable to translate "%s" in %s. sprintf() parameter should be an array.', $params['s'], $backTrace[0]['args'][1]->template_resource);
if (_PS_MODE_DEV_) {
throw new Exception($errorMessage);
} else {
PrestaShopLogger::addLog($errorMessage);
return $params['s'];
}
}
return Context::getContext()->getTranslator()->trans($params['s'], $sprintf, $params['d']);
}
if ($pdf) {
return Translate::smartyPostProcessTranslation(Translate::getPdfTranslation($params['s'], $sprintf), $params);
}
$filename = !isset($smarty->compiler_object) || !is_object($smarty->compiler_object->template) ? $smarty->template_resource : $smarty->compiler_object->template->getTemplateFilepath();
// If the template is part of a module
if (!empty($params['mod'])) {
return Translate::smartyPostProcessTranslation(Translate::getModuleTranslation($params['mod'], $params['s'], basename($filename, '.tpl'), $sprintf, isset($params['js'])), $params);
}
// If the tpl is at the root of the template folder
if (dirname($filename) == '.') {
$class = 'index';
}
// If the tpl is used by a Helper
if (strpos($filename, 'helpers') === 0) {
$class = 'Helper';
} else {
// If the tpl is used by a Controller
if (!empty(Context::getContext()->override_controller_name_for_translations)) {
$class = Context::getContext()->override_controller_name_for_translations;
} elseif (isset(Context::getContext()->controller)) {
$class_name = get_class(Context::getContext()->controller);
$class = substr($class_name, 0, strpos(Tools::strtolower($class_name), 'controller'));
} else {
// Split by \ and / to get the folder tree for the file
$folder_tree = preg_split('#[/\\\\]#', $filename);
$key = array_search('controllers', $folder_tree);
// If there was a match, construct the class name using the child folder name
// Eg. xxx/controllers/customers/xxx => AdminCustomers
if ($key !== false) {
$class = 'Admin' . Tools::toCamelCase($folder_tree[$key + 1], true);
} elseif (isset($folder_tree[0])) {
$class = 'Admin' . Tools::toCamelCase($folder_tree[0], true);
}
}
}
return Translate::smartyPostProcessTranslation(Translate::getAdminTranslation($params['s'], $class, $addslashes, $htmlentities, $sprintf), $params);
}
示例15: listenIPN
public function listenIPN($checkout, $topic, $id)
{
$payment_method_ids = array();
$payment_ids = array();
$payment_statuses = array();
$payment_types = array();
$credit_cards = array();
$transaction_amounts = 0;
$cardholders = array();
$external_reference = '';
if (Configuration::get('MERCADOPAGO_LOG') == 'true') {
PrestaShopLogger::addLog('MercadoPago :: listenIPN - topic = ' . $topic, MP::INFO, 0);
PrestaShopLogger::addLog('MercadoPago :: listenIPN - id = ' . $id, MP::INFO, 0);
PrestaShopLogger::addLog('MercadoPago :: listenIPN - checkout = ' . $checkout, MP::INFO, 0);
}
if ($checkout == "standard" && $topic == 'merchant_order' && $id > 0) {
// get merchant order info
$result = $this->mercadopago->getMerchantOrder($id);
$merchant_order_info = $result['response'];
$payments = $merchant_order_info['payments'];
$external_reference = $merchant_order_info['external_reference'];
foreach ($payments as $payment) {
// get payment info
$result = $this->mercadopago->getPayment($payment['id']);
$payment_info = $result['response']['collection'];
// colect payment details
$payment_ids[] = $payment_info['id'];
$payment_statuses[] = $payment_info['status'];
$payment_types[] = $payment_info['payment_type'];
$transaction_amounts += $payment_info['transaction_amount'];
if ($payment_info['payment_type'] == 'credit_card') {
$payment_method_ids[] = isset($payment_info['payment_method_id']) ? $payment_info['payment_method_id'] : "";
$credit_cards[] = isset($payment_info['last_four_digits']) ? '**** **** **** ' . $payment_info['last_four_digits'] : "";
$cardholders[] = $payment_info['cardholder']['name'];
}
}
if ($merchant_order_info['total_amount'] == $transaction_amounts) {
$this->updateOrder($payment_ids, $payment_statuses, $payment_method_ids, $payment_types, $credit_cards, $cardholders, $transaction_amounts, $external_reference);
}
} else {
if ($checkout == "custom" && $topic == 'payment' && $id > 0) {
$result = $this->mercadopago->getPayment($id);
$payment_info = $result['response']['collection'];
$external_reference = $payment_info['external_reference'];
// colect payment details
$payment_ids[] = $payment_info['id'];
$payment_statuses[] = $payment_info['status'];
$payment_types[] = $payment_info['payment_type'];
$transaction_amounts += $payment_info['transaction_amount'];
if ($payment_info['payment_type'] == 'credit_card') {
$payment_method_ids[] = $payment_info['payment_method_id'];
$credit_cards[] = '**** **** **** ' . $payment_info['last_four_digits'];
$cardholders[] = $payment_info['cardholder']['name'];
}
$this->updateOrder($payment_ids, $payment_statuses, $payment_method_ids, $payment_types, $credit_cards, $cardholders, $transaction_amounts, $external_reference);
}
}
}