⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.1
Server IP:
185.238.29.86
Server:
Linux server2 6.8.12-6-pve #1 SMP PREEMPT_DYNAMIC PMX 6.8.12-6 (2024-12-19T19:05Z) x86_64
Server Software:
nginx/1.18.0
PHP Version:
8.1.31
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
var
/
www
/
olasjoys
/
src
/
Adapter
/
Customer
/
View File Name :
CustomerDataProvider.php
<?php /** * Copyright since 2007 PrestaShop SA and Contributors * PrestaShop is an International Registered Trademark & Property of PrestaShop SA * * NOTICE OF LICENSE * * This source file is subject to the Open Software License (OSL 3.0) * that is bundled with this package in the file LICENSE.md. * It is also available through the world-wide-web at this URL: * https://opensource.org/licenses/OSL-3.0 * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to license@prestashop.com so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to https://devdocs.prestashop.com/ for more information. * * @author PrestaShop SA and Contributors <contact@prestashop.com> * @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) */ namespace PrestaShop\PrestaShop\Adapter\Customer; use Customer; use Db; use Symfony\Component\Process\Exception\LogicException; /** * This class will provide data from DB / ORM about Customer. */ class CustomerDataProvider { /** * @param int $id * * @throws LogicException If the customer id is not set * * @return object customer */ public function getCustomer($id) { if (!$id) { throw new LogicException('You need to provide a customer id', 5002); } $customer = new Customer($id); return $customer; } public function getIdByEmail(string $email) { $id = null; $customers = Customer::getCustomersByEmail($email); if (!empty($customers)) { $id = current($customers)['id_customer']; } return $id; } /** * @param int $customerId * @param int $langId * * @return array */ public function getCustomerAddresses($customerId, $langId) { $customer = $this->getCustomer($customerId); return $customer->getAddresses($langId); } /** * Get Default Customer Group ID. * * @param int $idCustomer Customer ID * * @return mixed|string|null */ public function getDefaultGroupId($idCustomer) { return Customer::getDefaultGroupId($idCustomer); } /** * Provides customer messages * * @param int $customerId */ public function getCustomerMessages(int $customerId, ?int $orderId = null, ?int $limit = null) { $mainSql = 'SELECT cm.*, c.`firstname` AS cfirstname, c.`lastname` AS clastname, e.`firstname` AS efirstname, e.`lastname` AS elastname FROM ' . _DB_PREFIX_ . 'customer_thread ct LEFT JOIN ' . _DB_PREFIX_ . 'customer_message cm ON ct.id_customer_thread = cm.id_customer_thread LEFT JOIN `' . _DB_PREFIX_ . 'customer` c ON ct.`id_customer` = c.`id_customer` LEFT OUTER JOIN `' . _DB_PREFIX_ . 'employee` e ON e.`id_employee` = cm.`id_employee` WHERE ct.id_customer = ' . $customerId; if ($orderId) { $mainSql .= ' AND ct.`id_order` = ' . $orderId; } $mainSql .= ' GROUP BY cm.id_customer_message ORDER BY cm.date_add DESC'; $count = Db::getInstance()->executeS("SELECT COUNT(*) AS total FROM ($mainSql) AS messages"); if ($limit) { $mainSql .= " LIMIT $limit"; } return [ 'total' => empty($count) ? 0 : (int) $count[0]['total'], 'messages' => Db::getInstance()->executeS($mainSql), ]; } }