function delete(&$elements) { $status = parent::delete($elements); if ($status) { $orderClass = hikashop_get('helper.order'); $orderClass->pkey = 'shipping_id'; $orderClass->table = 'shipping'; $orderClass->groupMap = 'shipping_type'; $orderClass->orderingMap = 'shipping_ordering'; $app =& JFactory::getApplication(); $orderClass->groupVal = $app->getUserStateFromRequest(HIKASHOP_COMPONENT . '.shipping_plugin_type', 'shipping_plugin_type', 'manual'); $orderClass->reOrder(); } return $status; }
function delete(&$elements, $order = false) { $elements = (int) $elements; JPluginHelper::importPlugin('hikashop'); $dispatcher = JDispatcher::getInstance(); $do = true; $dispatcher->trigger('onBeforeAddressDelete', array(&$elements, &$do)); if (!$do) { return false; } $orderClass = hikashop_get('class.order'); $status = true; if ($orderClass->addressUsed($elements)) { if (!$order) { $address = new stdClass(); $address->address_id = $elements; $address->address_published = 0; $status = parent::save($address); $app = JFactory::getApplication(); if ($app->isAdmin()) { $app->enqueueMessage(JText::_('ADDRESS_UNPUBLISHED_CAUSE_USED_IN_ORDER')); } } } else { $data = $this->get($elements); if (!$order || isset($data->address_published) && !$data->address_published) { $status = parent::delete($elements); } } if ($status) { if (empty($data)) { $data = $this->get($elements); } if (!empty($data->address_default)) { $query = 'SELECT MIN(address_id) as address_id, MAX(address_default) as address_default FROM ' . hikashop_table('address') . ' WHERE address_user_id = ' . (int) $data->address_user_id . ' AND address_published = 1'; $this->database->setQuery($query); $ret = $this->database->loadObject(); if (!empty($ret) && (int) $ret->address_default == 0) { $address = new stdClass(); $address->address_id = (int) $ret->address_id; $address->address_default = 1; parent::save($address); } } $dispatcher->trigger('onAfterAddressDelete', array(&$elements)); } return $status; }
function delete(&$elements) { if (!is_array($elements)) { $elements = array($elements); } JPluginHelper::importPlugin('hikashop'); JPluginHelper::importPlugin('hikashoppayment'); JPluginHelper::importPlugin('hikashopshipping'); $dispatcher = JDispatcher::getInstance(); $do = true; $dispatcher->trigger('onBeforeOrderDelete', array(&$elements, &$do)); if (!$do) { return false; } $string = array(); foreach ($elements as $key => $val) { $string[$val] = $this->database->Quote($val); } $query = 'SELECT order_billing_address_id,order_shipping_address_id FROM ' . hikashop_table('order') . ' WHERE order_id IN (' . implode(',', $string) . ')'; $this->database->setQuery($query); $orders = $this->database->loadObjectList(); $result = parent::delete($elements); if ($result) { if (!empty($orders)) { $addresses = array(); foreach ($orders as $order) { $addresses[$order->order_billing_address_id] = $order->order_billing_address_id; $addresses[$order->order_shipping_address_id] = $order->order_shipping_address_id; } $addressClass = hikashop_get('class.address'); foreach ($addresses as $address) { $addressClass->delete($address, true); } } $dispatcher->trigger('onAfterOrderDelete', array(&$elements)); } return $result; }
function delete(&$elements) { JPluginHelper::importPlugin('hikashop'); $dispatcher = JDispatcher::getInstance(); $do = true; $dispatcher->trigger('onBeforeDiscountDelete', array(&$elements, &$do)); if (!$do) { return false; } $status = parent::delete($elements); if ($status) { $dispatcher->trigger('onAfterDiscountDelete', array(&$elements)); } return $status; }
function delete(&$id, $cart_date = 'new') { $app = JFactory::getApplication(); $result = 0; $cartInfo = $this->loadCart($id); $currUser = hikashop_loadUser(true); $user = JFactory::getUser(); $session = JFactory::getSession(); if ($app->isAdmin() || !empty($currUser) && $currUser->user_cms_id == $cartInfo->user_id || $session->getId() == $cartInfo->session_id) { $result = parent::delete($id); if ($result && $cart_date == 'new') { $app = JFactory::getApplication(); $app->setUserState(HIKASHOP_COMPONENT . '.cart_id', 0); $this->loadCart(0, true); } } return $result; }
function delete(&$elements) { $result = parent::delete($elements); if ($result) { if (!is_array($elements)) { $elements = array($elements); } if (!empty($elements)) { $ids = array(); foreach ($elements as $id) { $ids[] = $this->database->Quote('menu_' . (int) $id); } $query = 'DELETE FROM ' . hikashop_table('config') . ' WHERE config_namekey IN (' . implode(',', $ids) . ');'; $this->database->setQuery($query); return $this->database->query(); } } return $result; }
function delete(&$elements, $fromCMS = false) { $result = true; if (!empty($elements)) { if (!is_array($elements)) { $elements = array((int) $elements); } else { JArrayHelper::toInteger($elements); } JPluginHelper::importPlugin('hikashop'); $dispatcher = JDispatcher::getInstance(); $do = true; $dispatcher->trigger('onBeforeUserDelete', array(&$elements, &$do)); if (!$do) { return false; } foreach ($elements as $el) { $query = 'SELECT count(*) FROM ' . hikashop_table('order') . ' WHERE order_user_id=' . $el; $this->database->setQuery($query); $hasOrders = $this->database->loadResult(); if (empty($hasOrders)) { $result = parent::delete($el); if ($result) { $address = hikashop_get('class.address'); $addresses = $address->loadUserAddresses($el); foreach ($addresses as $id => $data) { $address->delete($id); } } } else { $app = JFactory::getApplication(); if ($app->isAdmin()) { $data = $this->get($el); $app->enqueueMessage('The user with the email address "' . $data->user_email . '" could not be deleted in HikaShop because he has orders attached to him. If you want to delete this user in HikaShop as well, you first need to delete his orders.'); $result = false; } if ($fromCMS) { $query = 'UPDATE ' . hikashop_table('user') . ' SET user_cms_id=0 WHERE user_id IN (' . implode(',', $elements) . ')'; $this->database->setQuery($query); $result = $this->database->query(); } } } if ($result) { $dispatcher->trigger('onAfterUserDelete', array(&$elements)); } } return $result; }
function delete(&$elements) { if (!is_array($elements)) { $elements = array($elements); } JArrayHelper::toInteger($elements); $status = true; $pkey = end($this->pkeys); $table = hikashop_table(end($this->tables)); $parent = $this->parent; $parentIds = array(); $ids = array(); $products = array(); JPluginHelper::importPlugin('hikashop'); $dispatcher = JDispatcher::getInstance(); $do = true; $dispatcher->trigger('onBeforeCategoryDelete', array(&$elements, &$do)); if (!$do) { return false; } foreach ($elements as $element) { if (!$status) { continue; } $data = $this->get($element); if (empty($data)) { continue; } if (in_array($data->category_namekey, array('root', 'product', 'tax', 'status', 'created', 'confirmed', 'cancelled', 'refunded', 'shipped', 'manufacturer'))) { $app = JFactory::getApplication(); $app->enqueueMessage(JText::_('DEFAULT_CATEGORIES_DELETE_ERROR'), 'error'); $status = false; continue; } $ids[] = $element; $parentIds[$data->category_parent_id] = $data->category_parent_id; if ($data->category_type == 'product') { $query = 'SELECT product_id FROM ' . hikashop_table('product_category') . ' WHERE category_id=' . $element; $this->database->setQuery($query); if (!HIKASHOP_J25) { $products = array_merge($products, $this->database->loadResultArray()); } else { $products = array_merge($products, $this->database->loadColumn()); } } if (!empty($data->category_type)) { $this->type = $data->category_type; } $filter = ''; if ($data->category_right - $data->category_left != 1) { $query = 'UPDATE ' . $table . ' SET ' . $parent . ' = ' . $data->{$parent} . ' WHERE ' . $parent . ' = ' . $element; $this->database->setQuery($query); $status = $status && $this->database->query(); $query = 'UPDATE ' . $table . ' SET category_depth = category_depth - 1, category_left = category_left - 1, category_right = category_right - 1 WHERE category_left > ' . $data->category_left . ' AND category_right < ' . $data->category_right . $filter; $this->database->setQuery($query); $status = $status && $this->database->query(); } $query = 'UPDATE ' . $table . ' SET category_right = category_right - 2 WHERE category_right > ' . $data->category_right . $filter; $this->database->setQuery($query); $status = $status && $this->database->query(); $query = 'UPDATE ' . $table . ' SET category_left = category_left - 2 WHERE category_left > ' . $data->category_right . $filter; $this->database->setQuery($query); $status = $status && $this->database->query(); $status = $status && parent::delete($element); } if ($status) { $dispatcher->trigger('onAfterCategoryDelete', array(&$elements)); if (!empty($parentIds)) { $orderClass = hikashop_get('helper.order'); $orderClass->pkey = 'category_id'; $orderClass->table = 'category'; $orderClass->groupMap = 'category_parent_id'; $orderClass->orderingMap = 'category_ordering'; foreach ($parentIds as $parentId) { $orderClass->groupVal = $parentId; $orderClass->reOrder(); } } if (!empty($products)) { $query = 'SELECT * FROM ' . hikashop_table('product_category') . ' WHERE product_id IN (' . implode(',', $products) . ')'; $this->database->setQuery($query); $entries = $this->database->loadObjectList(); foreach ($entries as $entry) { if (in_array($entry->product_id, $products)) { $key = array_search($entry->product_id, $products); unset($products[$key]); } } if (!empty($products)) { $root = 'product'; $this->getMainElement($root); $insert = array(); foreach ($products as $new) { $insert[] = '(' . (int) $root . ',' . $new . ')'; } $query = 'INSERT IGNORE INTO ' . hikashop_table('product_category') . ' (category_id,product_id) VALUES ' . implode(',', $insert) . ';'; $this->database->setQuery($query); $this->database->query(); $orderClass = hikashop_get('helper.order'); $orderClass->pkey = 'product_category_id'; $orderClass->table = 'product_category'; $orderClass->groupMap = 'category_id'; $orderClass->orderingMap = 'ordering'; $orderClass->groupVal = $root; $orderClass->reOrder(); } } $fileClass = hikashop_get('class.file'); $fileClass->deleteFiles('category', $elements); $translationHelper = hikashop_get('helper.translation'); $translationHelper->deleteTranslations('category', $elements); } return $status; }
function delete(&$elements) { $db = JFactory::getDBO(); JArrayHelper::toInteger($elements); JPluginHelper::importPlugin('hikashop'); $dispatcher = JDispatcher::getInstance(); $do = true; $currentElements = array(); $dispatcher->trigger('onBeforeVoteDelete', array(&$elements, &$do, &$currentElements)); if (!$do) { return false; } $db->setQuery('SELECT vote_id, vote_rating, vote_ref_id, vote_published, vote_type FROM ' . hikashop_table('vote') . ' WHERE vote_id IN (' . implode(',', $elements) . ')'); $results = $db->loadObjectList(); foreach ($results as $result) { $vote_rating = $result->vote_rating; $vote_ref_id = $result->vote_ref_id; $vote_published = $result->vote_published; if ($result->vote_type == 'product') { $productClass = hikashop_get('class.' . $result->vote_type); $resultVote = $productClass->get($vote_ref_id); $average_score = @$resultVote->product_average_score; $total_vote = @$resultVote->product_total_vote; } else { if (isset($currentElements[(int) $result->vote_id])) { $element = $currentElements[(int) $result->vote_id]; if (!isset($element->average_score) || !isset($element->total_vote)) { return false; } $average_score = $element->average_score; $total_vote = $element->total_vote; } else { $average_score = 0; $total_vote = 0; $element = null; } } $status = parent::delete($result->vote_id); if ($status && isset($element) && $element !== null) { $query = 'DELETE FROM ' . hikashop_table('vote_user') . ' WHERE vote_user_id = ' . (int) $result->vote_id . ' '; $db->setQuery($query); $db->query(); if ($vote_published == 1 && $vote_rating != 0) { if ($total_vote - 1 == 0) { $average_score = 0; $total_vote = 0; } else { $average_score = ($average_score * $total_vote - $vote_rating) / ($total_vote - 1); $total_vote = $total_vote - 1; } $element->vote_id = (int) $result->vote_id; $element->vote_ref_id = (int) $result->vote_ref_id; $element->average_score = $average_score; $element->total_vote = $total_vote; if ($result->vote_type == 'product') { $product = new stdClass(); $product->product_id = (int) $vote_ref_id; $product->product_average_score = $average_score; $product->product_total_vote = (int) $total_vote; $productClass->save($product, true); } } $dispatcher->trigger('onAfterVoteDelete', array(&$element)); } } return true; }
function delete(&$elements) { $db = JFactory::getDBO(); JArrayHelper::toInteger($elements); JPluginHelper::importPlugin('hikashop'); $dispatcher = JDispatcher::getInstance(); $do = true; $currentElements = array(); $dispatcher->trigger('onBeforeVoteDelete', array(&$elements, &$do, &$currentElements)); if (!$do) { return false; } $db->setQuery('SELECT vote_id, vote_rating, vote_ref_id, vote_published, vote_type FROM ' . hikashop_table('vote') . ' WHERE vote_id IN (' . implode(',', $elements) . ')'); $results = $db->loadObjectList(); foreach ($results as $result) { if ($result->vote_type == 'product') { $dataClass = hikashop_get('class.' . $result->vote_type); $data = $dataClass->get($result->vote_ref_id); } $status = parent::delete($result->vote_id); if ($status && isset($data) && $data !== null) { $query = 'DELETE FROM ' . hikashop_table('vote_user') . ' WHERE vote_user_id = ' . (int) $result->vote_id . ' '; $db->setQuery($query); $db->query(); if ($result->vote_type == 'product') { $oldResult = clone $result; $result->vote_published = 0; if ($result->vote_rating != '0') { $this->updateAverage($result, $oldResult, $data); } unset($data->alias); $dataClass->save($data, true); } } } $dispatcher->trigger('onAfterVoteDelete', array(&$elements)); return true; }
function delete(&$elements, $ignoreFile = false) { if (!is_array($elements)) { $elements = array($elements); } JArrayHelper::toInteger($elements); if (!empty($elements)) { $query = 'SELECT product_id FROM ' . hikashop_table('product') . ' WHERE product_type=\'variant\' AND product_parent_id IN (' . implode(',', $elements) . ')'; $this->database->setQuery($query); if (!HIKASHOP_J25) { $elements = array_merge($elements, $this->database->loadResultArray()); } else { $elements = array_merge($elements, $this->database->loadColumn()); } } JPluginHelper::importPlugin('hikashop'); $dispatcher = JDispatcher::getInstance(); $do = true; $dispatcher->trigger('onBeforeProductDelete', array(&$elements, &$do)); if (!$do) { return false; } $status = parent::delete($elements); if ($status) { $dispatcher->trigger('onAfterProductDelete', array(&$elements)); $tagsHelper = hikashop_get('helper.tags'); $tagsHelper->deleteUCM('product', $elements); $class = hikashop_get('class.file'); $class->deleteFiles('product', $elements, $ignoreFile); $class->deleteFiles('file', $elements, $ignoreFile); $class = hikashop_get('helper.translation'); $class->deleteTranslations('product', $elements); return count($elements); } return $status; }