WooCommerce缓存教程 – 如何防止缓存破坏你的WooCommerce网站?


我们在以前的文章中探讨过如何加快你的WordPress网站的速度,并研究过各种形式的缓存。

然而,像那些使用WooCommerce的动态电子商务网站,在让缓存正常工作方面往往会面临重大挑战。

在本指南中,我们将告诉你如何为WooCommerce设置任何WordPress缓存插件,如果出了问题该怎么办,以及如何测试你的修改是否有效。

什么是缓存?

简单地说,缓存就是将网站 “保存 “起来,使最终用户能够比每次加载网站的所有方面更快。

缓存网站的资产已经被加载,因此比起网站每次被请求时都要加载和 “建立 “页面,可以更快得到服务。

缓存是如何影响WooCommerce的?

像WP Rocket这样的缓存插件,默认情况下是不会对登录用户进行缓存的,但如果你对登录用户进行了缓存,而你的网站又没有进行必要的设置,会发生什么情况?

你是否遇到过这样的情况?

  • 顾客看到其他顾客的账户信息?
  • 顾客在他们的购物车里有神秘物品,但他们发誓他们没有添加?
  • 顾客抱怨在结账时看到别人的地址?

那么你对WooCommerce的缓存设置就不正确了! 别担心,我们稍后会讨论如何解决这个问题。

但了解其中的隐患是非常重要的。

  • 客户失去信任。
  • 潜在的数据保护问题

作为一个店主,你有责任确保你的商店是安全的,并遵循所有的法律规定。

为什么需要明确配置WooCommerce的缓存?

当您在网站上缓存内容时,它就不再是动态的了,内容被保存下来,然后每次都以相同的方式提供给您的访问者。这意味着如果你缓存了你的结账页面,它永远不会向客户展示他们正确的购物车。

WooCommerce是动态的,您需要确保动态页面被排除在缓冲区之外。

如何设置WooCommerce的缓存?

如果你使用的是W3 Total Cache、WP Super Cache或WP Fastest Cache等流行的缓存插件,你需要做以下工作:

Step 1: 从你的缓存插件中排除WooCommerce页面

在大多数WooCommerce缓存插件中,排除页面是相当直接的,只需进入缓存插件设置,寻找排除选项,并将以下页面设置为排除:

  • 购物车
  • 付款页面
  • 我的账户
  • 产品

以上是WooCommerce提供的主要动态页面,其内容会根据谁在看这个页面而改变。

如果您使用的是WP Rocket,好消息!您不需要做什么(WP Rocket默认不包括所有WooCommerce页面)!不需要做什么(WP Rocket默认排除了所有WooCommerce页面)。

此外,从WooCommerce 1.4.2开始,WooCommerce设置了DONOTCACHEPAGE常量,这意味着从技术上讲,你不需要将这些页面从你的缓存方案中排除。

但是,如果你的缓存插件不支持DONOTCACHEPAGE常量,那么你仍然需要将其排除在外。大多数缓存插件都特别提到WooCommerce的兼容性,如果它们有的话。

如果你有客户重设密码和登录的问题,可以尝试从你的缓存插件中排除my-account.php。

Step 2: 将WooCommerce会话排除在缓存之外

这个具体步骤取决于你使用的缓存插件,大多数缓存插件不包括数据库缓存。然而,有些则有,在这些插件中,你需要将”wc_session”排除在缓存之外。

在W3 Total Cache中,这是自动完成的,可以通过你的wp-admin > Performance > Database Cache找到:

Step 3: 将WooCommerce Cookies排除在缓存之外

你是否有过这样的经历:你在购物车中添加了一些物品来测试缓存,你清空了购物车,刷新页面,砰!你的物品还在购物车中?

这不仅让你的访客感到担心和困惑,而且还会导致对你的网站的不信任,最终,潜在的客户不会再回来。

幸运的是,有一个简单的方法可以通过排除WooCommerce cookies的缓存来解决这个问题。

目前,有四个WooCommerce cookies应该从缓存中排除,它们是:

  • woocommerce_cart_hash — 处理决定购物车何时更新或被刷新的帮助器。必须从缓存中排除,以确保购物车反映正确的项目。
  • woocommerce_items_in_cart — 另一个帮助器,帮助WooCommerce确定购物车中的正确数据。必须从缓存中排除,以确保购物车反映正确的项目。
  • wp_woocommerce_session — 这个cookie包含了访客的唯一代码,分配给每个客户,它帮助WooCommerce在数据库中为每个客户找到购物车数据。再次强调,你必须将此排除在你的购物车之外。
  • woocommerce_recently_viewed — 最近浏览的小工具,同样,你必须从缓存中排除这个cookies,以确保最近浏览的小工具对每个访客都能正确显示。

有兴趣了解更多关于cookie以及它们在WooCommerce中的使用方法吗?请查看官方指南。

Step 4: 要不要最小化?这是个问题

WooCommerce自己建议不要对JavaScript进行最小化。然而,如果不进行最小化,你将失去潜在的性能改进。

相反,我们建议仍然对JavaScript进行最小化,但在最小化过程中不包括WooCommerce的脚本。

WP Rocket有一个很好的指南,告诉你如何找到正确的脚本来排除掉最小化。

Step 5: 如何测试WooCommerce商店存后是否正常工作

一旦你对你的缓存配置感到满意,现在是时候测试你的WooCommerce商店是否还能正常工作了,但是你如何做到这一点?

你需要做以下工作:

  • 测试你的产品页面是否加载并显示正确的产品。
  • 测试你的分类页面是否加载并显示了正确的产品。
  • 在你的网站上进行购买,以客人身份登录。确保结账正常,付款成功,并且显示的细节是正确的。
  • 在您的网站上以客户身份登录后进行购买。确保结账正常,付款顺利,并且显示的细节是正确的。
  • 创建一个优惠券并尝试在结账时使用,确保优惠券被应用,购物车中的金额和支付的价格是正确的。
  • 尝试重新设置密码,确保一切正常。

上述所有的工作?太好了! 那么就没有其他事情可做了,有问题吗?进入第6步。

Step 6: 当缓存还是破坏了WooCommerce网站时该怎么办?

最重要的部分是不要惊慌! 当你的网站出现故障时,这可能很可怕,但不要担心。任何问题都有可能解决。

首先,如果你已经启用了最小化和合并文件(在一些插件中,这被称为串联)。禁用这些选项,清除你的浏览器缓存,然后在一个隐身浏览器会话中尝试你的网站。

现在一切正常了吗?试着在不合并文件的情况下启用最小化,并再次测试你的网站;如果它再次中断,你知道合并文件会破坏你的网站,如果它仍然不工作。你已经按照我们在这篇文章中的建议做了,现在可能是时候找一个开发人员了。

如果你确实需要专家的帮助,可以尝试找我们(当然是付费的,而且不便宜)。

哪些缓存插件对WooCommerce效果最好?

根据我们的经验,WooCommerce最好的缓存插件是WP Rocket;它开箱即用,不需要额外配置。如果因为任何原因,你确实遇到了麻烦,他们有一支一流的缓存支持专家团队等着帮助你。

如果你正在寻找一个免费的替代品,在我们自己的测试中,WP Fastest Cache和W3 Total Cache都被证明是很好的免费替代品,在最小的设置麻烦下运行良好。

小结

设置带缓存的WooCommerce不一定很复杂。希望这篇指南对你有所帮助!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/diannao/84069.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

贪心算法 Part04

总结下重叠区间问题 LC 452. 用最少数量的箭引爆气球 和 LC 435. 无重叠区间 本质上是一样的。 LC 452. 用最少数量的箭引爆气球 是求n个区间当中 , 区间的种类数量 k。此处可以理解为,重叠在一起的区间属于同一品种,没有重叠的区间当然…

云原生CD工具-Argocd+ArgoRollout入门到精通

第一章 Argo CD简介 课时1.1 Argo产品介绍 ARGO官网地址:https://argoproj.github.io/ 旗下产品有: Argo Workflows、ArgoCD 、Argo Rollouts 、Argo Events 课时1.2 什么是Argo CD Argo CD 是一个开源的持续交付工具, 是 Kubernetes 的声明式 GitOps 持续交付工具。专…

数据分析与应用---数据可视化基础

目录 Matplotlib基础绘图 (一)、pyplot绘图基础语法与常用参数 1、pyplot基础语法 (1) 创建画布与创建子图 (2) 添加画布内容 (3) 保存与显示图形 案例代码 2. 设置pyplot的动态rc参数 (二)、使用Matplotlib绘制进阶图形 1. 绘制散点图----scatter 2. 绘制折线…

PP-YOLOE-SOD学习笔记1

项目:基于PP-YOLOE-SOD的无人机航拍图像检测案例全流程实操 - 飞桨AI Studio星河社区 一、安装环境 先准备新环境py>3.9 1.先cd到源代码的根目录下 2.pip install -r requirements.txt 3.python setup.py install 这一步需要看自己的GPU情况,去飞浆…

力扣HOT100之二叉树:114. 二叉树展开为链表

这道题自己尝试着做了一下,感觉还是得用递归来做比较简单,但是一直想的是用前序遍历来构造链表,导致怎么做都不对,去看了下灵神的题解,然后问了下GPT,现在终于弄明白了。虽然构造出来的链表的排列顺序是按照…

Spring Boot 注解 @ConditionalOnMissingBean是什么

一句话总结: ConditionalOnMissingBean 是 Spring Boot 提供的一个 条件注解(Conditional Annotation),意思是: 只有当 Spring 容器中 不存在 某个 Bean 时,当前的 Bean 或配置才会被加载。 这是一种典型的…

PyInstaller 如何在mac电脑上生成在window上可执行的exe文件

PyInstaller跨平台打包限制 PyInstaller 无法直接从macOS生成Windows可执行文件,因为它需要访问目标平台的系统库和Python环境来构建可执行文件。要在macOS上为Windows打包Python应用,需要通过以下方法之一: 方法一:使用虚拟机或…

零基础设计模式——创建型模式 - 抽象工厂模式

第二部分:创建型模式 - 抽象工厂模式 (Abstract Factory Pattern) 我们已经学习了单例模式(保证唯一实例)和工厂方法模式(延迟创建到子类)。现在,我们来探讨创建型模式中更为复杂和强大的一个——抽象工厂…

【通用智能体】Serper API 详解:搜索引擎数据获取的核心工具

Serper API 详解:搜索引擎数据获取的核心工具 一、Serper API 的定义与核心功能二、技术架构与核心优势2.1 技术实现原理2.2 对比传统方案的突破性优势 三、典型应用场景与代码示例3.1 SEO 监控系统3.2 竞品广告分析 四、使用成本与配额策略五、开发者注意事项六、替…

Flask-SQLAlchemy核心概念:模型类与数据库表、类属性与表字段、外键与关系映射

前置阅读,关于Flask-SQLAlchemy支持哪些数据库及基本配置,链接:Flask-SQLAlchemy_数据库配置 摘要 本文以一段典型的 SQLAlchemy 代码示例为引入,阐述以下核心概念: 模型类(Model Class) ↔ 数…

野火鲁班猫(arrch64架构debian)从零实现用MobileFaceNet算法进行实时人脸识别(四)安装RKNN Toolkit2

RKNN Toolkit2是用来将onnx模型转成rknn专用模型,并可通过RKNN Toolkit Lite2或者RKNPU调用NPU进行加速计算的工具。 一开始我安装很多次都无法成功安装。后来跟售后技术对接,必须是PC平台的Linux环境才可以。我的电脑是windows,所以我需要用…

基于深度学习的工件检测系统设计与实现

在工业自动化领域,工件检测一直是提高生产效率和产品质量的关键环节。传统的人工检测方法不仅效率低下,而且容易受到主观因素的影响,导致误判率较高。随着深度学习技术的飞速发展,基于图像识别的自动检测系统逐渐成为研究热点。今…

CyberSecAsia专访CertiK首席安全官:区块链行业亟需“安全优先”开发范式

近日,权威网络安全媒体CyberSecAsia发布了对CertiK首席安全官Wang Tielei博士的专访,双方围绕企业在进军区块链领域时所面临的关键安全风险与防御策略展开深入探讨。 Wang博士在采访中指出,跨链桥攻击、智能合约漏洞以及私钥管理不当&#x…

Google C++ Style Guide 谷歌 C++编码风格指南,深入理解华为与谷歌的编程规范——C和C++实践指南

Google C 编程风格指南 Release Apr 07, 2017 0. ᡿享 ⡾ᵢ 4.45 ৕֒㘻 Benjy Weinberger, Craig Silverstein, Gregory Eitzmann, Mark Mentovai, Tashana Landray 㘱䈇 YuleFox, Yang.Y, acgtyrant, lilinsanity 亯ⴤѱ享 • Google Style Guide • Google 开源…

当科技邂逅浪漫:在Codigger的世界里,遇见“爱”

520,一个充满爱意的日子,人们用各种方式表达对彼此的深情。而在科技的世界里,我们也正经历着一场特别的邂逅——Codigger,一个分布式操作系统的诞生,正在以它独特的方式,重新定义我们与技术的关系。 Codigg…

嵌入式学习笔记 - Void类型的指针

void指针的基本概念和特性 void指针是一种特殊的指针类型,称为“无类型指针”或“通用指针”。它的主要特点是: ‌通用性‌:void指针可以指向任何类型的数据,这使得它在处理不确定数据类型时非常有用。 ‌灵活性‌:由…

【综述】视频目标分割VOS

相关连接 更新中....... 1、Associating Objects with Transformers for Video Object Segmentation:论文详解、AOT源码解析 2、Rethinking Space-Time Networks with Improved Memory Coverage for Efficient Video Object Segmentation 3、Recurrent Dynamic Embe…

001 嵌入式软件开发工程师实习篇面试——首战总结

2025年5月17日人生中第一次面试 紧张是藏不住的。但是不应该的。 目录 0.准备一份合适的自我介绍 1.结构体内存对齐问题 2.变量在内存中的存储模式 3.嵌入式中程序框架有哪些 4.程序代码设计要遵循什原则 5.版本号书写 6.单片机最小系统板有哪些组成 必须: 非必须:…

SIL2/PLd 认证 Inxpect毫米波安全雷达:3D 扫描 + 微小运动检测守护工业安全

Inxpect 成立于意大利,专注工业安全技术。自成立起,便致力于借助先进雷达技术提升工业自动化安全标准,解决传统安全设备在复杂环境中的局限,推出获 SIL2/PLd 和 UL 认证的安全雷达产品。 Inxpect 的雷达传感器技术优势明显。相较于…

Python数据可视化再探——Matplotlib模块 之一

目录 第一章 Matplotlib 模块教学内容​——基础图形绘制 一、Pyplot 子库介绍​ 1. 功能概述​ 2. 常用函数​ 二、绘制基本图形​ 1. 柱状图​ 2. 条形图​ 3. 折线图​ 4. 散点图​ 5. 面积图​ 6. 饼状图​ 7. 圆环图​ ​编辑 三、绘图知识点详解​ 1. 绘图…