JACUK Posted June 19, 2019 Share Posted June 19, 2019 Hi, I would like to be able to include on the drop down display from the cart icon at the top right of the page an option to empty/remove all items from the cart. A forum search showed a code edit that would achieve this but unfortunately not compatible with my version. Is anyone aware of anything that would allow me to add this feature? Next to View Cart would be ideal. Regards, Julian Running: osCommerce Online Merchant v2.3.4.1 CE Link to comment Share on other sites More sharing options...
241 Posted June 19, 2019 Share Posted June 19, 2019 tep_href_link('shopping_cart.php', 'action=clear_cart') uses includes\actions\clear_cart.php redirects to shopping_cart.php if the redirect is not right then copy and mod as required and change the name to be different from clear_cart No longer giving free advice. Please place deposit in meter slot provided. Individual: [=] SME: [==] Corporation: [===] If deposit does not fit one of the slots provided then you are asking too much! Is your Osc dated try Phoenix raising oscommerce from the ashes. Link to comment Share on other sites More sharing options...
JACUK Posted June 19, 2019 Author Share Posted June 19, 2019 Hi 241, My install doesn't include the file includes\actions\clear_cart.php. So not sure how to proceed with this sugestion? Regards, Julian Link to comment Share on other sites More sharing options...
ArtcoInc Posted June 19, 2019 Share Posted June 19, 2019 @JACUK I haven't tested this, but ... https://apps.oscommerce.com/hTxnj&clear-cart-button-in-shopping-cart M Link to comment Share on other sites More sharing options...
ArtcoInc Posted June 19, 2019 Share Posted June 19, 2019 @JACUK fwiw ... I modified my Shopping Cart drop-down to include a 'Checkout' link, and removed the 'Checkout' from the NavBar ... I think that it's better for the customer to View their cart, and then can remove items individually there. But, it's your store ... ..... Thinking about it more, as shown above, the part number in the drop-down is a link to that item's page. Depending on the length of your part numbers, and the size of your drop-down, I don't see why you couldn't add a small 'Delete from Cart' button between each part number and the cost. Coding that would be up to you, of course. HTH M Link to comment Share on other sites More sharing options...
JACUK Posted June 20, 2019 Author Share Posted June 20, 2019 Thanks Artcoinc, The add-on you link to was the one I had already looked at, and didn't match up with the code in my version of the application_top.php file (I have pasted the code below so you can see). I think I will park this idea, your suggestion about a delete option by each item seems more interesting - may well follow it up. This was something i was going to add knowing the client i am developing this site for, i can just see him asking for it! Will have to use my powers of persuasion. Thanks again - help, advice & support always appreciated. Regards, Julian Link to comment Share on other sites More sharing options...
JACUK Posted June 20, 2019 Author Share Posted June 20, 2019 Sorry - something urgent cropped up and realised i posted without code included. Now shown below. <?php /* $Id$ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2014 osCommerce Released under the GNU General Public License */ // start the timer for the page parse time log define('PAGE_PARSE_START_TIME', microtime()); // set the level of error reporting (E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT); // ini_set('display_errors', 1); // ini_set('display_startup_errors', 1); // error_reporting(E_ALL); // check support for register_globals if (function_exists('ini_get') && (ini_get('register_globals') == false) && (PHP_VERSION < 4.3) ) { exit('Server Requirement Error: register_globals is disabled in your PHP configuration. This can be enabled in your php.ini configuration file or in the .htaccess file in your catalog directory. Please use PHP 4.3+ if register_globals cannot be enabled on the server.'); } // load server configuration parameters if (file_exists('includes/local/configure.php')) { // for developers include('includes/local/configure.php'); } else { include('includes/configure.php'); } if (DB_SERVER == '') { if (is_dir('install')) { header('Location: install/index.php'); exit; } } // define the project version --- obsolete, now retrieved with tep_get_version() define('PROJECT_VERSION', 'osCommerce Online Merchant v2.3'); // some code to solve compatibility issues require('includes/functions/compatibility.php'); // set the type of request (secure or not) $request_type = (getenv('HTTPS') == 'on') ? 'SSL' : 'NONSSL'; // set php_self in the local scope $req = parse_url($_SERVER['SCRIPT_NAME']); $PHP_SELF = substr($req['path'], ($request_type == 'NONSSL') ? strlen(DIR_WS_HTTP_CATALOG) : strlen(DIR_WS_HTTPS_CATALOG)); if ($request_type == 'NONSSL') { define('DIR_WS_CATALOG', DIR_WS_HTTP_CATALOG); } else { define('DIR_WS_CATALOG', DIR_WS_HTTPS_CATALOG); } // include the list of project database tables require('includes/database_tables.php'); // include the database functions require('includes/functions/database.php'); // make a connection to the database... now tep_db_connect() or die('Unable to connect to database server!'); // set the application parameters $configuration_query = tep_db_query('select configuration_key as cfgKey, configuration_value as cfgValue from ' . TABLE_CONFIGURATION); while ($configuration = tep_db_fetch_array($configuration_query)) { define($configuration['cfgKey'], $configuration['cfgValue']); } // if gzip_compression is enabled, start to buffer the output if ( (GZIP_COMPRESSION == 'true') && ($ext_zlib_loaded = extension_loaded('zlib')) && !headers_sent() ) { if (($ini_zlib_output_compression = (int)ini_get('zlib.output_compression')) < 1) { if (PHP_VERSION < '5.4' || PHP_VERSION > '5.4.5') { // see PHP bug 55544 if (PHP_VERSION >= '4.0.4') { ob_start('ob_gzhandler'); } elseif (PHP_VERSION >= '4.0.1') { include('includes/functions/gzip_compression.php'); ob_start(); ob_implicit_flush(); } } } elseif (function_exists('ini_set')) { ini_set('zlib.output_compression_level', GZIP_LEVEL); } } // set the HTTP GET parameters manually if search_engine_friendly_urls is enabled if (SEARCH_ENGINE_FRIENDLY_URLS == 'true') { if (strlen(getenv('PATH_INFO')) > 1) { $GET_array = array(); $PHP_SELF = str_replace(getenv('PATH_INFO'), '', $PHP_SELF); $vars = explode('/', substr(getenv('PATH_INFO'), 1)); do_magic_quotes_gpc($vars); $n=sizeof($vars); for ($i=0; $i<$n; $i++) { if (strpos($vars[$i], '[]')) { $GET_array[substr($vars[$i], 0, -2)][] = $vars[$i+1]; } else { $_GET[$vars[$i]] = $vars[$i+1]; } $i++; } if ($GET_array !== null) { foreach($GET_array as $key => $value) { $_GET[$key] = $value; } } } } // define general functions used application-wide require('includes/functions/general.php'); require('includes/functions/html_output.php'); // hooks require('includes/classes/hooks.php'); $OSCOM_Hooks = new hooks('shop'); // set the cookie domain $cookie_domain = (($request_type == 'NONSSL') ? HTTP_COOKIE_DOMAIN : HTTPS_COOKIE_DOMAIN); $cookie_path = (($request_type == 'NONSSL') ? HTTP_COOKIE_PATH : HTTPS_COOKIE_PATH); // include cache functions if enabled if (USE_CACHE == 'true') include('includes/functions/cache.php'); // include shopping cart class require('includes/classes/shopping_cart.php'); // include navigation history class require('includes/classes/navigation_history.php'); // define how the session functions will be used require('includes/functions/sessions.php'); // set the session name and save path tep_session_name('osCsid'); tep_session_save_path(SESSION_WRITE_DIRECTORY); // set the session cookie parameters if (function_exists('session_set_cookie_params')) { session_set_cookie_params(0, $cookie_path, $cookie_domain); } elseif (function_exists('ini_set')) { ini_set('session.cookie_lifetime', '0'); ini_set('session.cookie_path', $cookie_path); ini_set('session.cookie_domain', $cookie_domain); } @ini_set('session.use_only_cookies', (SESSION_FORCE_COOKIE_USE == 'True') ? 1 : 0); // set the session ID if it exists if ( SESSION_FORCE_COOKIE_USE == 'False' ) { if ( isset($_GET[tep_session_name()]) && (!isset($_COOKIE[tep_session_name()]) || ($_COOKIE[tep_session_name()] != $_GET[tep_session_name()])) ) { tep_session_id($_GET[tep_session_name()]); } elseif ( isset($_POST[tep_session_name()]) && (!isset($_COOKIE[tep_session_name()]) || ($_COOKIE[tep_session_name()] != $_POST[tep_session_name()])) ) { tep_session_id($_POST[tep_session_name()]); } } // start the session $session_started = false; if (SESSION_FORCE_COOKIE_USE == 'True') { tep_setcookie('cookie_test', 'please_accept_for_session', time()+60*60*24*30, $cookie_path, $cookie_domain); if (isset($_COOKIE['cookie_test'])) { tep_session_start(); $session_started = true; } } elseif (SESSION_BLOCK_SPIDERS == 'True') { $user_agent = strtolower(getenv('HTTP_USER_AGENT')); $spider_flag = false; if (tep_not_null($user_agent)) { $spiders = file('includes/spiders.txt'); $n=sizeof($spiders); for ($i=0; $i<$n; $i++) { if (tep_not_null($spiders[$i])) { if (is_integer(strpos($user_agent, trim($spiders[$i])))) { $spider_flag = true; break; } } } } if ($spider_flag == false) { tep_session_start(); $session_started = true; } } else { tep_session_start(); $session_started = true; } if ( ($session_started == true) && (PHP_VERSION >= 4.3) && function_exists('ini_get') && (ini_get('register_globals') == false) ) { extract($_SESSION, EXTR_OVERWRITE+EXTR_REFS); } // initialize a session token if (!tep_session_is_registered('sessiontoken')) { $sessiontoken = md5(tep_rand() . tep_rand() . tep_rand() . tep_rand()); tep_session_register('sessiontoken'); } // set SID once, even if empty $SID = (defined('SID') ? SID : ''); // verify the ssl_session_id if the feature is enabled if ( ($request_type == 'SSL') && (SESSION_CHECK_SSL_SESSION_ID == 'True') && (ENABLE_SSL == true) && ($session_started == true) ) { $ssl_session_id = getenv('SSL_SESSION_ID'); if (!tep_session_is_registered('SSL_SESSION_ID')) { $SESSION_SSL_ID = $ssl_session_id; tep_session_register('SESSION_SSL_ID'); } if ($SESSION_SSL_ID != $ssl_session_id) { tep_session_destroy(); tep_redirect(tep_href_link('ssl_check.php')); } } // verify the browser user agent if the feature is enabled if (SESSION_CHECK_USER_AGENT == 'True') { $http_user_agent = getenv('HTTP_USER_AGENT'); if (!tep_session_is_registered('SESSION_USER_AGENT')) { $SESSION_USER_AGENT = $http_user_agent; tep_session_register('SESSION_USER_AGENT'); } if ($SESSION_USER_AGENT != $http_user_agent) { tep_session_destroy(); tep_redirect(tep_href_link('login.php')); } } // verify the IP address if the feature is enabled if (SESSION_CHECK_IP_ADDRESS == 'True') { $ip_address = tep_get_ip_address(); if (!tep_session_is_registered('SESSION_IP_ADDRESS')) { $SESSION_IP_ADDRESS = $ip_address; tep_session_register('SESSION_IP_ADDRESS'); } if ($SESSION_IP_ADDRESS != $ip_address) { tep_session_destroy(); tep_redirect(tep_href_link('login.php')); } } // create the shopping cart if (!tep_session_is_registered('cart') || !is_object($cart)) { tep_session_register('cart'); $cart = new shoppingCart; } // include currencies class and create an instance require('includes/classes/currencies.php'); $currencies = new currencies(); // include the mail classes require('includes/classes/mime.php'); require('includes/classes/email.php'); // set the language if (!tep_session_is_registered('language') || isset($_GET['language'])) { if (!tep_session_is_registered('language')) { tep_session_register('language'); tep_session_register('languages_id'); } include('includes/classes/language.php'); $lng = new language(); if (isset($_GET['language']) && tep_not_null($_GET['language'])) { $lng->set_language($_GET['language']); } else { $lng->get_browser_language(); } $language = $lng->language['directory']; $languages_id = $lng->language['id']; } // include the language translations $_system_locale_numeric = setlocale(LC_NUMERIC, 0); require('includes/languages/' . $language . '.php'); setlocale(LC_NUMERIC, $_system_locale_numeric); // Prevent LC_ALL from setting LC_NUMERIC to a locale with 1,0 float/decimal values instead of 1.0 (see bug #634) // currency if (!tep_session_is_registered('currency') || isset($_GET['currency']) || ( (USE_DEFAULT_LANGUAGE_CURRENCY == 'true') && (LANGUAGE_CURRENCY != $currency) ) ) { if (!tep_session_is_registered('currency')) tep_session_register('currency'); if (isset($_GET['currency']) && $currencies->is_set($_GET['currency'])) { $currency = $_GET['currency']; } else { $currency = ((USE_DEFAULT_LANGUAGE_CURRENCY == 'true') && $currencies->is_set(LANGUAGE_CURRENCY)) ? LANGUAGE_CURRENCY : DEFAULT_CURRENCY; } } // navigation history if (!tep_session_is_registered('navigation') || !is_object($navigation)) { tep_session_register('navigation'); $navigation = new navigationHistory; } $navigation->add_current_page(); // action recorder include('includes/classes/action_recorder.php'); // initialize the message stack for output messages require('includes/classes/alertbox.php'); require('includes/classes/message_stack.php'); $messageStack = new messageStack; // Shopping cart actions if (isset($_GET['action'])) { // redirect the customer to a friendly cookie-must-be-enabled page if cookies are disabled if ($session_started == false) { tep_redirect(tep_href_link('cookie_usage.php')); } if (DISPLAY_CART == 'true') { $goto = 'shopping_cart.php'; $parameters = array('action', 'cPath', 'products_id', 'pid'); } else { $goto = $PHP_SELF; if ($_GET['action'] == 'buy_now') { $parameters = array('action', 'pid', 'products_id'); } else { $parameters = array('action', 'pid'); } } include('includes/classes/actions.php'); osC_Actions::parse($_GET['action']); } // include the who's online functions require('includes/functions/whos_online.php'); tep_update_whos_online(); // include the password crypto functions require('includes/functions/password_funcs.php'); // include validation functions (right now only email address) require('includes/functions/validations.php'); // split-page-results require('includes/classes/split_page_results.php'); // auto activate and expire banners require('includes/functions/banner.php'); tep_activate_banners(); tep_expire_banners(); // auto expire special products require('includes/functions/specials.php'); tep_expire_specials(); require('includes/classes/osc_template.php'); $oscTemplate = new oscTemplate(); // include category tree class require('includes/classes/category_tree.php'); // calculate category path if (isset($_GET['cPath'])) { $cPath = $_GET['cPath']; } elseif (isset($_GET['products_id']) && !isset($_GET['manufacturers_id'])) { $cPath = tep_get_product_path($_GET['products_id']); } else { $cPath = ''; } if (tep_not_null($cPath)) { $cPath_array = tep_parse_category_path($cPath); $cPath = implode('_', $cPath_array); $current_category_id = end($cPath_array); $OSCOM_category = new category_tree; } else { $current_category_id = 0; } // include the breadcrumb class and start the breadcrumb trail require('includes/classes/breadcrumb.php'); $breadcrumb = new breadcrumb; $breadcrumb->add(HEADER_TITLE_TOP, HTTP_SERVER); $breadcrumb->add(HEADER_TITLE_CATALOG, tep_href_link('index.php')); // add category names or the manufacturer name to the breadcrumb trail if (isset($cPath_array)) { foreach ($cPath_array as $k => $v) { $breadcrumb_category = $OSCOM_category->getData($v, 'name'); if ( defined('MODULE_HEADER_TAGS_CATEGORY_TITLE_SEO_BREADCRUMB_OVERRIDE') && (MODULE_HEADER_TAGS_CATEGORY_TITLE_SEO_BREADCRUMB_OVERRIDE == 'True') ) { if (tep_not_null($OSCOM_category->getData($v, 'seo_title'))) { $breadcrumb_category = $OSCOM_category->getData($v, 'seo_title'); } } $breadcrumb->add($breadcrumb_category, tep_href_link('index.php', 'cPath=' . implode('_', array_slice($cPath_array, 0, ($k+1))))); } } elseif (isset($_GET['manufacturers_id'])) { if ( defined('MODULE_HEADER_TAGS_MANUFACTURER_TITLE_SEO_BREADCRUMB_OVERRIDE') && (MODULE_HEADER_TAGS_MANUFACTURER_TITLE_SEO_BREADCRUMB_OVERRIDE == 'True') ) { $manufacturers_query = tep_db_query("select coalesce(NULLIF(mi.manufacturers_seo_title, ''), m.manufacturers_name) as manufacturers_name from manufacturers m, manufacturers_info mi where m.manufacturers_id = mi.manufacturers_id and m.manufacturers_id = '" . (int)$_GET['manufacturers_id'] . "' and mi.languages_id = '" . (int)$languages_id . "'"); } else { $manufacturers_query = tep_db_query("select manufacturers_name from manufacturers where manufacturers_id = '" . (int)$_GET['manufacturers_id'] . "'"); } if (tep_db_num_rows($manufacturers_query)) { $manufacturers = tep_db_fetch_array($manufacturers_query); $breadcrumb->add($manufacturers['manufacturers_name'], tep_href_link('index.php', 'manufacturers_id=' . $_GET['manufacturers_id'])); } } // add the products model to the breadcrumb trail if (isset($_GET['products_id'])) { if ( defined('MODULE_HEADER_TAGS_PRODUCT_TITLE_SEO_BREADCRUMB_OVERRIDE') && (MODULE_HEADER_TAGS_PRODUCT_TITLE_SEO_BREADCRUMB_OVERRIDE == 'True') ) { $model_query = tep_db_query("select coalesce(NULLIF(pd.products_seo_title, ''), NULLIF(p.products_model, ''), pd.products_name) as products_model from products p, products_description pd where p.products_id = '" . (int)$_GET['products_id'] . "' and p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id . "'"); } else { $model_query = tep_db_query("select coalesce(NULLIF(p.products_model, ''), pd.products_name) as products_model from products p, products_description pd where p.products_id = '" . (int)$_GET['products_id'] . "' and p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id . "'"); } if (tep_db_num_rows($model_query)) { $model = tep_db_fetch_array($model_query); $breadcrumb->add($model['products_model'], tep_href_link('product_info.php', 'cPath=' . $cPath . '&products_id=' . $_GET['products_id'])); } } $OSCOM_Hooks->register(basename($PHP_SELF, '.php')); Link to comment Share on other sites More sharing options...
oscmepwl Posted June 22, 2019 Share Posted June 22, 2019 I like the idea of @ArtcoInc If I'm a customer to a site I'll like to view the cart and remove items individually. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.