Jump to content

bsmither

Member
  • Posts

    17,980
  • Joined

  • Last visited

  • Days Won

    603

Everything posted by bsmither

  1. I will look at the code in CC6110. In the meantime, please view in CubeCart's admin, the Email Log. You should see almost all attempts at having sent an email and the 'Sent' results of each attempt. If the result is a checkmark, then we need to look more towards if the email got lost in transit. If the result is an X, we may find the reason in an error log. If the attempt is not even listed, we need to look at CubeCart's code.
  2. That is an anomaly. Which is to say, this is the first time we have heard of this. Has this happened to more than one purchase where those customers are registered? Please let us know the exact version of CubeCart you are using, and if you have any third-party plugins installed.
  3. On the warning that is shown, click the Advanced link. You should be given an opportunity to learn more about the certificate -- specifically the Common Name and Alt Name that the cert was created for.
  4. This might be a bit onerous for the customer, but in admin, Store Settings, Layout tab, we can force CubeCart to show the View Basket page for every occurrence of having added something to the basket. That would be the "Jump to basket on add" setting. Otherwise, we can adjust the time it takes after fading in to fade out. That setting is near: Line 531 in CC618's /skins/foundation/js/2.cubecart.js function mini_basket_action() { $('#basket-detail, #small-basket-detail').fadeIn('fast', function() { $(this).delay(4000).fadeOut('slow'); }); } Change to 4000 to a desired value (in milliseconds). We can also incorporate jQuery UI into Foundation, then add some special effects, like shaking the basket so that the customer's attention is absolutely acquired. Because we edited this page's resource (a javascript file), we need to force the browser to reload all page resources. This is usually done with CTRL-F5.
  5. Sorry, but if the best suggestions put forward in that discussion isn't doing what is supposed to happen, then maybe something else is interfering. What statements did you choose to add to the .htaccess file?
  6. CubeCart's upgrade procedure replaces files with new files if those new files exist. So, the .htaccess file if it already existed, should not have been overwritten with files from the CC6110 package. Which means if the redirect via .htaccess doesn't happen with CC6110, then the redirect via .htaccess was not being done in CC619 either. Which means if there was a redirect happening, it was being managed by some other process. Whatever, Stack Overflow has a few good suggestions for the .htaccess file (if your hosting account uses a web server that respects .htaccess directives). https://stackoverflow.com/questions/12050590/redirect-non-www-to-www-in-htaccess
  7. Having a column in the imported file to indicate a tax class by number -- I haven't studied that. It might be new. But specifying the actual tax amount, which is what I thought you were asking, is something I doubt can be done (without customizing the code). I have not seen a plugin that will mass assign a tax class to chosen categories. However, a SQL query (outside of CubeCart) can be written to do that.
  8. Welcome Marques! Glad to see you made it to the forum. In CubeCart, tax is calculated, not specified. So, please do not believe it can be imported from an external source. In admin, Taxes, CubeCart comes with a stock three tax classes: Standard, Reduced, and Exempt. These are generic, semantic names. If you wish to have any other tax class, like "Pittance", add it here. Then Save. Returning to Taxes, see the Tax Details tab. For however Netherlands names the actual taxes, add them here. There may be a name for the 6% and a name for the 21%. Then Save. Returning to taxes, Tax Rules tab, here is where you specify the 6% for that tax detail and class. Same for 21%. Save. To make it easy, the Tax Classes tab will allow you to mass assign a given class to all the inventory. Then, for products entitled to any other tax class, you will need to individually edit those on the Product's Pricing tab.
  9. The Marketplace has Additional Product Fields and Tabs plugins. Might be a solution for you.
  10. I corrected the instructions above. Thanks for noticing that. If you edited *just* the return false; statement, and did not disturb the following original stock line that has a single closing parenthesis, then this syntax error should not have happened. So, do not disturb any statements after the to-be-edited return false;
  11. Change *just* the "return false;" statement. I said to make the first find so that you would not mistake any other statement for the second find.
  12. But are those notices from the error_log, or the admin, Error Log, System Error Log? CC616 (I think) started the whole problem of logging everything. I'll double-check the CC6110 code, but I think that the overblown logging to the database is now tame.
  13. Currently, not everyone has PHP logging to an active error log. Some hosting configurations *may* have this enabled by default, and if so, I would imagine the PHP error log is kept trimmed by some internal mechanism. Others who I have worked with did not shut off user-initiated PHP's error logging and the log has grown to several ten thousand megabytes. The latest versions of CubeCart will trim it's internal database system error log table to 30 days. In CubeCart's admin, Store Settings, Advanced tab, disabling debug mode (I think) will suppress the logging of all but the most serious of PHP errors. (I think.) So, under normal operations, I would think CubeCart's current dealing with PHP error logging is adequate.
  14. Here is my solution for CC618/CC6110 (and possibly later). It will inhibit PHP's Notices unless overridden - discussed later. classes/debug.class.php =================================================================== Find: protected static $_instance; Add BEFORE: /** * Suppress logging of PHP Notices * * @var bool */ private $_suppress_php_notices = true; Find: final protected function __construct() { Change to: final protected function __construct($suppress_php_notices) { $this->_suppress_php_notices = $suppress_php_notices; Find: public static function getInstance() { if (!(self::$_instance instanceof self)) { self::$_instance = new self(); Change to: public static function getInstance($suppress_php_notices = true) { if (!(self::$_instance instanceof self)) { self::$_instance = new self($suppress_php_notices); Find: case E_NOTICE: case E_USER_NOTICE: $type = 'Notice'; Change to: case E_NOTICE: $type = 'Notice'; $log = ($this->_suppress_php_notices) ? false : $can_log; break; case E_USER_NOTICE: $type = 'USERNotice'; Find (edited for originally taking this from my development version - the stock code is as follows): $error = "[<strong>".$type."</strong>] \t".$error_file.":".$error_line." - ".$error_string; $this->_errors[] = $error; if($log) { $this->_writeErrorLog($error, $type); } Then find: return false; Change to: return ($this->_suppress_php_notices && $type == 'Notice') ? true : false; // See PHP manual for set_error_handler() callback function return value /controllers/controller.admin.pre_session.inc.php =================================================================== Find: $GLOBALS['debug'] = Debug::getInstance(); Change to: $GLOBALS['debug'] = Debug::getInstance(!$GLOBALS['config']->has('config','debug_ignore_notices') ?: $GLOBALS['config']->get('config','debug_ignore_notices')); /controllers/controller.index.inc.php =================================================================== Find: $GLOBALS['debug'] = Debug::getInstance(); Change to: $GLOBALS['debug'] = Debug::getInstance(!$GLOBALS['config']->has('config','debug_ignore_notices') ?: $GLOBALS['config']->get('config','debug_ignore_notices')); /ini-custom.inc.php (if present) =================================================================== Find: <?php Add after: // Un-comment to log PHP Notices //$config_default['debug_ignore_notices'] = false; By having the statement that (eventually) adds a config setting to say that "do NOT ignore PHP Notices," these notices will get logged to the error log and to CubeCart's System Error Log in admin. If you have CubeCart's Debug enabled, you will still see them in the debug section at the bottom of the page. The reason we are adding to the $config_default array is that this array is Config->merged()'d into the overall configuration and can be seen everywhere, but when shutting down, these merged elements are removed before the configuration is written back to the database. We do not want this setting persisting.
  15. "Is there anyway to turn PHP Notices off so they don't get reported in the error log? By error log, are you referring to the listing in the admin's Error Log, System Error Log tab, or the "error_log" file that PHP creates because of instructions a file named "ini-custom.inc.php" that tells PHP to be logging errors to that file? CC618 (carried over to CC6110) started logging everything - as opposed to CC615. Short answer: we can adjust the reporting that gets logged through a code edit. You can ignore all Undefined index and Undefined variable notices. You can ignore Invalid Security Token warnings as this is probably using the browser back button or having more than one admin screen open at once. For the most part, you can ignore Invalid argument warnings. The above helps to find what may be causing unexpected results in CubeCart's operations - but mostly it is just the consequences of the programming style that is used to code CubeCart. That leaves a few errors that may need to have some explanation: Security Warning: Illegal array key &quot;sort%5Bdate_added%5D&quot; was detected and was removed There may be a customization in the code that is incompatible with later versions of CubeCart. The array key mentioned should just be sort, but something is encoding sort[date_added] to sort%5Bdate_added%5D which has characters CubeCart deems dangerous (the %). No customer information detected. Order summary was not built or inserted. This is interesting. Something really outside the bounds of the normal sequence of events must have happened. curl_setopt(): Disabling safe uploads is no longer supported You will need to get with SemperFi and get an updated version of the "Automatic Social Media Posts" plugin.
  16. REGEX rules discuss the concept of 'character classes'. Anything inside a set of brackets is treated as things to search for. There are a few special characters that must be escaped: \s for things like spaces, tabs, new lines, etc., a 'dash allows for ranges of characters, and a couple others. So, the period goes inside the brackets. Note that, just inside the opening bracket, there is a circumflex (^). This means to negate the class. This statement is wanting to replace any other character not in this class with nothing, that is, remove from the search string any character that is not in the class. We do not want the period removed. So, we need to look elsewhere why a search is not finding a product name/code/description with a period in it.
  17. And, actually, I see that the code will insert the new product's info, and use the database inventory table's new product_id value to have the FileManager assign the product images.
  18. As you say, a show/hide aspect of a child selector based on the choice made would be nice. I haven't seen one.
  19. PHP 5.6 is the better choice compared to PHP 5.4 - provided all the necessary PHP extensions are still enabled. Please try having your browser force re-load all the page's resources (javascript, CSS and image files). This is usually done with CTRL-F5.
  20. There is an extension that will populate a drop-down selector once it's "parent" selector has had a choice selected. (The example situation for which this plugin was created is for selecting car parts. Choose Model, then Make, then Year, etc.) CubeCart is currently not coded to show/hide/enable options based on prior options. However, we can explore the Options Matrix Table. We can enable the OPTION option and the PAINTED option for the Matrix table, then somehow inhibit the availability of the OPTION-1/PAINTED and OPTION-1/NOT-PAINTED Matrix choices.
  21. I think the patch included two files: the one file with a code correction that would otherwise cause PHP to crash, and a file with a grammatical correction. I do not recall seeing a new ini.inc.php file. It is in this file that some parts of CubeCart use a constant value to know what its version is at. Also, the patch did not add an entry to the CubeCart_history database table with the 6.1.10 version, which other parts of CubeCart uses to determine at what version the database is at. I believe the code to assign an image is still assuming there is a product_id in the database table CubeCart_inventory. Only until after the new product's data has been inserted, will CubeCart then work with any changes to the set of images assigned to the product. (However, I think the code could be rewritten to assign images during the same process as inserting the new inventory record.) This image procedure has been this way for all of CubeCart's history. Is your experience any different? New code has been added to CC619/6110 to remove items from the cart if they went missing - for some reason. I do not yet know how that change to the code works. But if you are actually referring to the storefront's Shopping Basket not showing newly Add to Basket items, I think that may be an aggressive caching issue by your hosting provider. Or are you referring to a View Basket page with no items listed?
  22. CubeCart allows you to do either: set a price differential from the base product price, or set an absolute price regardless of the base product price. When the options were initially created - in admin, Product Options - where the "Bolt Size" option name was created, it is here that you click a box that says this option is required (regardless of what product it has been assigned to).
  23. Please set the options as required. These required options are then assigned to the product. CubeCart will not add a product to the shopping basket until required options (whatever they may be) have been selected.
  24. Welcome forum-guru! Glad to see you made it to the forums. For items to be considered "on sale" are determined in one of two ways: a global sales mode (5% off everything, for example) and a per product with a sales price greater than zero and less than regular price. Currently, we would need to add custom code so that the admin's Product Inventory table can be sorted by Sale Price.
×
×
  • Create New...