WordPress

WordPress的瞬态缓存和对象缓存

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

继续阅读WordPress的瞬态缓存和对象缓存
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自定义订单号