Files
b2b.redline.com.pl/modules/newsletterpro/classes/NewsletterProGenerateOrders.php
2025-06-24 14:14:35 +02:00

118 lines
3.7 KiB
PHP

<?php
/**
* Since 2013 Ovidiu Cimpean.
*
* Ovidiu Cimpean - Newsletter Pro © All rights reserved.
*
* DISCLAIMER
*
* Do not edit, modify or copy this file.
* If you wish to customize it, contact us at addons4prestashop@gmail.com.
*
* @author Ovidiu Cimpean <addons4prestashop@gmail.com>
* @copyright Since 2013 Ovidiu Cimpean
* @license Do not edit, modify or copy this file
*
* @version Release: 4
*/
class NewsletterProGenerateOrders
{
private $customers;
private $id_address;
public function __construct()
{
// for prestashop 1.7 not working
if (file_exists(_PS_MODULE_DIR_.'bankwire/bankwire.php')) {
include_once _PS_MODULE_DIR_.'bankwire/bankwire.php';
$this->customers = Customer::getCustomers();
$id_customer = Db::getInstance()->getValue('SELECT * FROM `'._DB_PREFIX_.'customer` WHERE `email` = "'.pSQL('pub@prestashop.com').'"');
$pub = new Customer($id_customer);
$address = $pub->getAddresses(Configuration::get('PS_LANG_DEFAULT'));
$this->id_address = $address[key($address)]['id_address'];
}
}
public static function newInstance()
{
return new self();
}
public function generate()
{
if (!file_exists(_PS_MODULE_DIR_.'bankwire/bankwire.php')) {
return 0;
}
echo '<pre>';
$id_carrier = Configuration::get('PS_CARRIER_DEFAULT');
$orders = 0;
foreach ($this->customers as $cus) {
++$orders;
$id_customer = $_GET['id_customer'] = (int) $cus['id_customer'];
$customer = new Customer((int) $id_customer);
$this->context = Context::getContext();
$this->context->customer = &$customer;
$this->context->shop = new Shop($this->context->customer->id_shop);
$configuration = Configuration::getMultiple([
'PS_LANG_DEFAULT',
'PS_CURRENCY_DEFAULT',
]);
$id_address_delivery = $id_address_invoice = $this->id_address;
$currency = new Currency((int) $configuration['PS_CURRENCY_DEFAULT']);
$this->context->currency = &$currency;
$cart = new Cart();
$cart->id_currency = (int) $configuration['PS_CURRENCY_DEFAULT'];
$cart->id_lang = (int) $customer->id_lang;
$cart->id_shop_group = (int) $this->context->shop->id_shop_group;
$cart->secure_key = $customer->secure_key;
$cart->add();
$id_cart = (int) $cart->id;
$cart = new Cart((int) $id_cart);
$this->context->cart = &$cart;
$cart->id_address_delivery = (int) $id_address_delivery;
$cart->id_address_invoice = (int) $id_address_invoice;
$cart->id_carrier = (int) $id_carrier;
$cart->id_customer = (int) $customer->id;
$products_id = [1, 2, 3, 4, 5, 6, 7];
$qty = rand(1, 3);
$nb = rand(1, count($products_id) / 2);
if ($nb < 1) {
$nb = 1;
}
for ($i = 0; $i < $nb; ++$i) {
$id_product = $products_id[$i];
$cart->updateQty($qty, $id_product);
}
$bankwire = new BankWire();
$total = (float) ($cart->getOrderTotal(true, Cart::BOTH));
try {
$bankwire->validateOrder($cart->id, Configuration::get('PS_OS_BANKWIRE'), $total, $bankwire->displayName, null, [], (int) $currency->id, false, $customer->secure_key);
new Order($bankwire->currentOrder);
} catch (Exception $e) {
echo $customer->email.' -> '.$e->getMessage().'<br>';
}
}
echo '</pre>';
return $orders;
}
}