WP笔记

WordPress的瞬态缓存和对象缓存

WordPress原生缓存机制主要有两种:瞬态缓存和对象缓存。两者主要区别是生存时间和存储位置不同,瞬态缓存活在一段时间内,这段时间任何一次页面请求都可以使用,存储在数据库中。对象缓存只生存在一次页面请求中,下一次请求就访问不到了,存储在内存中。但两者也不是界限分明的,当WordPress安装了高级缓存,瞬态缓存可以搬到内存里住,对象缓存也能在多次请求中重复使用。下面来详细介绍一下。

继续阅读WordPress的瞬态缓存和对象缓存
WooCommerce

使WooCommerce订单搜索支持自定义字段(2021)

WooCommerce的后台订单管理支持搜索功能,要扩展搜索功能,首先要明确它能搜什么,不能搜什么。要知道这个信息,读源代码是最快的方法。我们直接找到WooCommerce订单搜索的源代码——class-wc-order-data-store-cpt.php文件里的search_orders()函数,这就是搜索调用的函数。

继续阅读使WooCommerce订单搜索支持自定义字段(2021)
WooCommerce

获取WooCommerce页面地址的方法

WooCommerce的顶级页面有商店页、购物车页、结账页、我的账户页和用户协议页,结账页和账户页有次级页面,分别由结账端点和账户端点来指定,也就是endpoints。顶级页面是WordPress里真正的页面,次级页面没有实体页面,只是靠重定向规则动态创造出来的。本文介绍WooCommerce中获取这些页面地址的专用函数。

继续阅读获取WooCommerce页面地址的方法
WooCommerce

WooCommerce后台通过自定义字段检索产品

WooCommerce后台的产品检索与前台搜索略有不同。前台是在WordPress默认搜索的基础上修改,后台直接用了一套自己的逻辑,从wc_product_meta_lookup这个表里检索产品,调用函数WC_Product_Data_Store_CPT->search_products(),这个函数只有一个filter——woocommerce_product_pre_search_products,允许返回自定义结果,代价是截断了WooCommerce所有的搜索逻辑,显然不适合小修改。后台可以搜sku,但其它自定义字段就不行了,且没有任何位置可以干预。幸运的是我们还能用WordPress自带的filter – request来完成自定义字段搜索功能。

继续阅读WooCommerce后台通过自定义字段检索产品
WooCommerce

WooCommerce自定义订单号

WooCommerce默认使用post ID作为订单号,post可以是订单,也可以是产品、页面、文章或其它的custom post type,所以这个ID是不连续的,人们并不能简单的通过订单号去猜测你网站的销量。但这也给商店管理者带来一定困扰,拿到一个订单号,却无法知道是什么时候的订单,是哪个商店的订单。所以要给订单号加前缀,前缀里带上具体时间和一个序号,就能解决这个问题。

继续阅读WooCommerce自定义订单号
WooCommerce

WooCommerce订单管理(2021)

订单管理位于WooCommerce - 订单下,当你的站点开始收到订单后,就能看到这个菜单。订单仅对管理员和商店经理/Shop Manager可见,每个订单有一个唯一的ID,这个ID就是WordPress post_id,是不连续的。本文简单介绍一下WooCommerce订单管理的方法。

继续阅读WooCommerce订单管理(2021)
WooCommerce

WooCommerce移除登出账户的确认提示

有时候,登出WooCommerce站点可能要分两步,先点登出链接,到一个确认登出界面,再点确认登出链接,才能退出账户。有点麻烦对吧,但这可能不是WooCommerce的锅。没错,WooCommerce确实设计了这个功能,但测试5.8.0版本,正常的退出是一次退出,没有确认过程,可能是你的主题代码没写对。

继续阅读WooCommerce移除登出账户的确认提示
WP笔记

WordPress Gutenberg编辑器的Gallery增加灯箱效果

WordPress默认的Gutenberg编辑器自带的Gallery图集很好用,美中不足的是查看大图比较麻烦,如果有lightbox灯箱效果,点击图片就展示大图,不用离开当前页,点点左右箭头就能继续看其它图片,岂不美哉。大家都喜欢看图,全用大图占地方,用小图看不清,图集+灯箱效果可以完美化解这个矛盾。

继续阅读WordPress Gutenberg编辑器的Gallery增加灯箱效果
WP笔记

如何批量替换WordPress网站的内容

网站域名变了,文章内容里的地址没替换咋办?是你移动网站的方法不对吗?不一定啊,如果你自己搞了个cdn叫content.mysite.com,用duplicator插件移动网站时还觉得ok,活干完就后悔了,“哎呀,我怎么不用个更时髦的地址呢”。没关系,这时候我们可以召唤一款能比较精准的替换数据库内容的插件——Better Search Replace

继续阅读如何批量替换WordPress网站的内容
WooCommerce

WooCommerce收据功能的实现

WooCommerce收据功能就是让用户在“我的账户”里查看订单的收据,可以打印或下载。多免费插件可以实现这个功能,但经过一番试用后多少都有缺陷。比如,有些功能要收费版才有,有些插件代码写的不灵活,难以扩展和定制化。偶然发现一款收费插件,代码简洁明了,actions和filters丰富,定制化极强,记录一下使用心得。

继续阅读WooCommerce收据功能的实现