Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by bsmither

  1. The Foundation skin has the Smarty template code to put in-place the recaptcha javascript code - if enabled. Other CC6-conforming skins should also have the Smarty template code. Skins originally built for CC5 has Smarty code for an implementation of recaptcha available in CC5. reCaptcha requirements have changed since then.
  2. In admin, Email Templates, click the flag of the language you wish to change for Cart: Order Complete. On the next page, the HTML Content and Plain Text Content tabs will have the means to add this new code. (For the HTML tab, you should switch the editor to Source mode.) Then, when finished with this admin session, be sure to first clear the cache.
  3. The captcha code gets involved in the Registration page, checking out as a Guest, leaving a Ratings Comment on the product page, the Newsletter sign-up sidebox, and the Contact Us page. As of CC628 Foundation skin, there is a popup box (admin enabled) that appears when moving away from the site, asking to sign up for the newsletter. This modal Exit box also has captcha involved. Once a visitor has passed a captcha challenge for that session, there will be no more challenges. Note: a customer being logged in has no bearing on captcha's involvement.
  4. Also, in the Homepage document's image, the URL is using a full non-secure (http) format, while the page is being sent securely (https). This may trip up some browsers as having mixed content - which could deny the request. To fix this, in the Homepage document editor, the image properties dialog box, either start the URL with // or just a single slash (or just the filename if the file is in the root directory). I also see that the request for this image is 301 bounced to use a secure (https) URL. So, there is a specific directive in the .htaccess file or a general directive in the Cpanel configuration for the site.
  5. Please be sure that: * the .htaccess file has the proper URL rewrite directives * the hosting environment's web server has URL rewriting enabled * the hosting environment's web server has .htaccess overrides allowed Looking at the page's source in the browser, the canonical link in the <head> section looks weird: <link href="https://whitewillowstitching.com/index.php?url=majestic-bald-eagle-cross-stitch-pdf-chart.html" rel="canonical"> Please check if there may be some extra directives in the .htaccess file that would affect any rewrite rules.
  6. I made changes to the code I posted earlier. It seems my testing of the use of preg_match gave false positive results.
  7. Looking for it myself, I can't find it either.
  8. FYI: I have seen comments regarding phpMyAdmin that if clicking in the cell with the encoded data you want to see, the cell will show a drop-down that allows the user to select base64_decode.
  9. Are the obsolete email addresses in the Contact Us admin settings form still showing as the obsolete ones? If so, use phpMyAdmin (or similar) to examine the database table CubeCart_config. Find the row for Contact_Form. Have phpMyAdmin decode the 'array' value. Are the emails shown here the same obsolete ones?
  10. The trap looks for (in addition to the registration form being used) the LAST letter being uppercase (not giving any consideration to the other letters) and the same letter for both first and last names. The admin cannot disable a skin. If the name of an installed skin is known, a URL can be constructed to have that session (based on cookies) switch to it. This can happen even if the admin, in Store Settings, Layout tab, 'Allow skin to be changed', has been set to "Yes, Logged-in admin only". However, this is session-based. I cannot conceive of how a drive-by visitor can change the skin across all sessions. You said you did not change the skin setting? But was the setting actually changed? And, you also say Contact Us settings have reverted to what they were at some point in time in the past? I would ask if your hosting provider restored some of your database from a backup.
  11. There are some (non-specific non-legal advice) articles found from a shallow search. Basically, if the card/voucher is 'single-purpose', meaning that what it can only be redeemed for is a specific single product or service, VAT is collected with the sale of the card. Consuming the service then depletes the balance on the card. This is because the tax rate is known at all times. The tricky part is to not tax that single-purpose consumption of the card's balance. A 'multi-purpose' card can be redeemed for anything, and if some things are VAT taxed at different rates (books versus jewelry), VAT is not known at all times, cannot be collected with the sale of the card, and so must be collected when the card is redeemed. (Again, consult with your local/federal taxing authorities.)
  12. (Looking at CC628) In admin, Gift Cards, the admin can choose the Tax Type. Please experiment with setting this to Tax Exempt. (Depends on your local tax laws.)
  13. PHP documentation warns of the eval() function being dangerous. Actually, I have found statements in the Smarty template system that use PHP's eval().
  14. Anywhere in the PHP.INI file, add the directive. Then restart PHP (or the web server, whatever). https://www.php.net/manual/en/ini.core.php#ini.disable-functions If you do not have access to the main PHP.INI file, then please consult your hosting provider.
  15. CubeCart core code does not use those PHP functions. However, it is unknown (to me) whether any third-party modules - especially code that has been ionCube encoded or otherwise obfuscated - use these functions.
  16. The first instance is the Card Capture gateway changing the order status to Processing - which sends an email to the customer. The second instance is the Card Capture gateway having its module settings enabled for sending a confirmation email. In the Card Capture module settings page, it is apparent that you have the setting for "Update order status to "Processing" on capture?" enabled, even though you do not know if the card can be transacted. That's up to you, of course. It is also apparent that you have the setting for "Send order confirmation email?" enabled, as if, since the order should stay at pending until transacted, you wish to have CubeCart send an email summarizing the order. (CubeCart does not send an email to the customer on orders that are Pending.)
  17. Welcome Amar! Glad to see you made it to the forums. We would say that you are running a version of CubeCart that is several versions old, and running it in a newer version of PHP. Please see: https://forums.cubecart.com/topic/55625-php-version/?tab=comments#comment-241075
  18. We will create a code snippet. For each email sent, this will log a debug trace in CubeCart's System Error Log. A debug trace is a list of every PHP script that was involved when the debug command was executed. In admin, Manage Hooks, Code Snippets tab, click Add Snippet. When the next page shows up, fill in the form at the bottom: Enabled: checked Unique ID: [email protected] Execution Order: 99 Description: Logs a stack trace to the Error Log when sending emails. Trigger: class.mailer.presend Version: 1.0 Author: https://forums.cubecart.com/topic/55651-some-emails-to-customers-being-sent-twice/ PHP Code: <?php if (!function_exists('generateCallTrace')) { function generateCallTrace(){ $e = new Exception(); $trace = explode("\n", $e->getTraceAsString()); $trace = array_reverse($trace); // reverse array to make steps line up chronologically array_shift($trace); // remove {main} array_pop($trace); // remove call to this method $length = count($trace);$result = array(); for ($i = 0; $i < $length; $i++) $result[] = ($i + 1) . ')' . substr($trace[$i], strpos($trace[$i], ' ')); return "\t" . implode("\n\t", $result); } } $GLOBALS['debug']->errorLogger('Trace',"Sending an email:\n".generateCallTrace(),__FILE__,__LINE__); When you next notice an email having been sent twice, examine the System Error Log in CubeCart's admin. The contents of each log entry will be in one single line, so you will need to copy it and split it apart in a text editor.
  19. All of them. A CubeCart update has two aspects: a whole-cloth code replacement, and database schema changes. The setup directory makes the changes to the database schema. The whole-cloth code replacement overwrites all files that are stock to the CubeCart package. (That is, any added modules, skins, cached files, etc, are not overwritten.) CubeCart's automatic update will download the latest package, unzip, and replace files whole-cloth. Or, you can download the package, unzip on your local workstation, then FTP the files and folders to your hosted site's CubeCart folder - instructing the FTP program to allow files to be overwritten. Then run /setup/ manually.
  20. We would ask that you create the error_log. See: https://forums.cubecart.com/topic/51550-how-to-create-the-error-log/
  21. Have you verified your customer's complaints? I am not experiencing any problems so far. Something is in the cart. I click the shopping cart icon and the page slides left to show the Your Basket window. I click the Secure Checkout button and I next see the Checkout page.
  22. I will formulate some tests to see if we can determine what is triggering the emails.
  23. In the admin script file /sources/products.index.inc.php, starting at about line 633, look for instances of $GLOBALS['main']->addTabControl();. We see that the first two instances are for the General and Description tabs. A tab could be added to the group if translating a product for Search Engines. But skip this unless translating. Then, near line 681, we see that a group of five tabs are added. Keep going and you will find the rest. You can move these statements around if you want, but that might get confusing. You can also edit each instance by making the following change: For example, if you want to move the Options tab to the end, then change the priority: From: $GLOBALS['main']->addTabControl($lang['catalogue']['title_options'], 'Options'); To: $GLOBALS['main']->addTabControl($lang['catalogue']['title_options'], 'Options',null,null,false,'_self',99); The 99 is the tab's priority and makes this appear at the end. If other tabs have the same priority, they will get listed in order of having been added, but after other tabs having a lesser number.
  24. Also, are each pair being sent at the same time? Would you be using the Print Order Form gateway module?
  25. I don't have an immediate answer, but please confirm that you know these emails are getting sent twice and both received by the recipient - as opposed to only getting logged in the Email Log twice.
  • Create New...