public function ajaxProcessProductQuantity() { if (!Tools::getValue('actionQty')) { return Tools::jsonEncode(array('error' => $this->l('Undefined action'))); } $product = new Product((int) Tools::getValue('id_product'), true); switch (Tools::getValue('actionQty')) { case 'depends_on_stock': if (Tools::getValue('value') === false) { die(Tools::jsonEncode(array('error' => $this->l('Undefined value')))); } if ((int) Tools::getValue('value') != 0 && (int) Tools::getValue('value') != 1) { die(Tools::jsonEncode(array('error' => $this->l('Incorrect value')))); } if (!$product->advanced_stock_management && (int) Tools::getValue('value') == 1) { die(Tools::jsonEncode(array('error' => $this->l('Not possible if advanced stock management is disabled. ')))); } if ($product->advanced_stock_management && Pack::isPack($product->id)) { die(Tools::jsonEncode(array('error' => $this->l('Not possible if the product is a pack.')))); } StockAvailable::setProductDependsOnStock($product->id, (int) Tools::getValue('value')); break; case 'out_of_stock': if (Tools::getValue('value') === false) { die(Tools::jsonEncode(array('error' => $this->l('Undefined value')))); } if (!in_array((int) Tools::getValue('value'), array(0, 1, 2))) { die(Tools::jsonEncode(array('error' => $this->l('Incorrect value')))); } StockAvailable::setProductOutOfStock($product->id, (int) Tools::getValue('value')); break; case 'set_qty': if (Tools::getValue('value') === false || !is_numeric(trim(Tools::getValue('value')))) { die(Tools::jsonEncode(array('error' => $this->l('Undefined value')))); } if (Tools::getValue('id_product_attribute') === false) { die(Tools::jsonEncode(array('error' => $this->l('Undefined id product attribute')))); } StockAvailable::setQuantity($product->id, (int) Tools::getValue('id_product_attribute'), (int) Tools::getValue('value')); Hook::exec('actionProductUpdate', array('product' => $this->object)); // Catch potential echo from modules $error = ob_get_contents(); if (!empty($error)) { ob_end_clean(); die(Tools::jsonEncode(array('error' => $error))); } break; case 'advanced_stock_management': if (Tools::getValue('value') === false) { die(Tools::jsonEncode(array('error' => $this->l('Undefined value')))); } if ((int) Tools::getValue('value') != 1 && (int) Tools::getValue('value') != 0) { die(Tools::jsonEncode(array('error' => $this->l('Incorrect value')))); } if (!Configuration::get('PS_ADVANCED_STOCK_MANAGEMENT') && (int) Tools::getValue('value') == 1) { die(Tools::jsonEncode(array('error' => $this->l('Not possible if advanced stock management is disabled. ')))); } if (Configuration::get('PS_ADVANCED_STOCK_MANAGEMENT') && Pack::isPack($product->id)) { die(Tools::jsonEncode(array('error' => $this->l('Not possible if the product is a pack.')))); } $product->setAdvancedStockManagement((int) Tools::getValue('value')); if (StockAvailable::dependsOnStock($product->id) == 1 && (int) Tools::getValue('value') == 0) { StockAvailable::setProductDependsOnStock($product->id, 0); } break; } if ($product->active == 1 && $product->quantity > 0 && $product->available_for_order) { if (StockALert::getActiveById($product->id)) { if ($productsalert = StockALertProducts::getById($product->id)) { $updPrAlert = new StockAlertProducts($productsalert['id_stock_alert_products']); $updPrAlert->active = 1; $updPrAlert->update(); } else { StockAlertProducts::addAlertProducts($product->id); } } } die(Tools::jsonEncode(array('error' => false))); }
public function postProcess() { if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && Tools::getValue('callback_subject')) { $iso = Language::getIsoById(intval($this->context->language->id)); $template = 'callback'; $subject = Tools::getValue('callback_subject'); $templateVars = array('{user_name}' => Tools::getValue('name'), '{user_phone}' => Tools::getValue('phone')); $admin_mails = Configuration::get('PS_SHOP_EMAIL'); // echo _PS_ROOT_DIR_.'/mails/'.$iso.'/'.$template.'.txt';die(); if (file_exists(_PS_ROOT_DIR_ . '/mails/' . $iso . '/' . $template . '.txt') and file_exists(_PS_ROOT_DIR_ . '/mails/' . $iso . '/' . $template . '.html')) { if (Mail::Send($this->context->language->id, $template, $subject, $templateVars, $admin_mails)) { die(Tools::jsonEncode(1)); } } die(Tools::jsonEncode(0)); } if (Tools::getValue('product_to_wish')) { $email = Tools::getValue('email'); $id_product = Tools::getValue('id_product'); if ($alert = StockALert::getByEmailAndProduct($email, $id_product)) { if (!$alert['active']) { $updAlert = new StockAlert($alert['id_stock_alert']); $updAlert->active = 1; $updAlert->update(); } } else { StockALert::addAlert($email, $id_product); } die(Tools::jsonEncode(1)); } }
include dirname(__FILE__) . '/../../../config/config.inc.php'; include dirname(__FILE__) . '/../../../init.php'; header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); if ($productsForAlert = StockALertProducts::getAllProductsForAlert()) { if ($usersForMail = StockALert::getAllRecordByProducts($productsForAlert)) { $link = new Link(); foreach ($usersForMail as $key => $value) { $products = array(); foreach ($value as $item) { $pr = new Product($item); $q = $cover = Product::getCover($pr->id); array_push($products, array('name' => $pr->name['1'], 'price' => Tools::displayPrice($pr->price), 'quantity' => StockAvailable::getQuantityAvailableByProduct($pr->id), 'link' => $link->getProductLink($pr), 'image' => $link->getImageLink($pr->link_rewrite, $cover['id_image'], 'large_default'))); } $template = 'stockAlert'; $subject = 'Товар доступен'; $product_list_html = StockALertProducts::getEmailTemplateContent('stockAlert.tpl', Mail::TYPE_HTML, $products); $templateVars = array('{products}' => $product_list_html); $admin_mails = Configuration::get('PS_SHOP_EMAIL'); $te = Mail::Send(1, $template, $subject, $templateVars, $key); } } $r = StockALertProducts::deactivate($productsForAlert); //Обнуляем списки отслеживаемых продуктов и убираем их из листа ожидания $r = StockALert::deactivate($productsForAlert); echo 'Письма отправлены'; } else { echo 'Не кому отправлять письма'; }