* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) */ function add_order_state($conf_name, $name, $invoice, $send_email, $color, $unremovable, $logable, $delivery, $template = null) { $res = true; $name_lang = []; $template_lang = []; foreach (explode('|', $name) as $item) { $temp = explode(':', $item); $name_lang[$temp[0]] = $temp[1]; } if ($template) { foreach (explode('|', $template) as $item) { $temp = explode(':', $item); $template_lang[$temp[0]] = $temp[1]; } } $res &= Db::getInstance()->execute(' INSERT INTO `' . _DB_PREFIX_ . 'order_state` (`invoice`, `send_email`, `color`, `unremovable`, `logable`, `delivery`) VALUES (' . (int) $invoice . ', ' . (int) $send_email . ', "' . $color . '", ' . (int) $unremovable . ', ' . (int) $logable . ', ' . (int) $delivery . ')'); $id_order_state = Db::getInstance()->getValue(' SELECT MAX(`id_order_state`) FROM `' . _DB_PREFIX_ . 'order_state`'); $languages = Db::getInstance()->executeS('SELECT * FROM `' . _DB_PREFIX_ . 'lang`'); foreach ($languages as $lang) { $iso_code = $lang['iso_code']; $iso_code_name = isset($name_lang[$iso_code]) ? $iso_code : 'en'; $iso_code_template = isset($template_lang[$iso_code]) ? $iso_code : 'en'; $name = isset($name_lang[$iso_code]) ? $name_lang[$iso_code] : $name_lang['en']; $template = isset($template_lang[$iso_code]) ? $template_lang[$iso_code] : ''; $res &= Db::getInstance()->execute(' INSERT IGNORE INTO `' . _DB_PREFIX_ . 'order_state_lang` (`id_lang`, `id_order_state`, `name`, `template`) VALUES (' . (int) $lang['id_lang'] . ', ' . (int) $id_order_state . ', "' . $name . '", "' . $template . '") '); } $exist = Db::getInstance()->getValue('SELECT `id_configuration` FROM `' . _DB_PREFIX_ . 'configuration` WHERE `name` = \'' . pSQL($conf_name) . '\''); if ($exist) { $res &= Db::getInstance()->execute('UPDATE `' . _DB_PREFIX_ . 'configuration` SET value = "' . (int) $id_order_state . '" WHERE `name` LIKE \'' . pSQL($conf_name) . '\''); } else { $res &= Db::getInstance()->execute('INSERT INTO `' . _DB_PREFIX_ . 'configuration` (name, value) VALUES ("' . pSQL($conf_name) . '", "' . (int) $id_order_state . '"'); } }