WooCommerce 以编程方式获取购物车 ID

kri*_*ris 3 php wordpress cart woocommerce

我正在为 WooCommerce 开发一个插件。

在我的后端 API 服务器(不是我的 Wordpress 服务器,而是维护购物车记录副本的另一台服务器)上,我需要一种方法来判断我正在处理的购物车是否与以前相同(购物车项目或详细信息可能已更改) ,但就使用我的 WP 网站的消费者而言,他们仍处于相同的购物车体验中)。

我需要一些可以作为购物车的唯一标识符的东西。

据我所知,WC_Cart对象上没有明确的 ID,
是否有一种好的合理方法来派生 ID?


注意:我知道可以使用generate_cart_id()来获取购物车中产品线的唯一ID(如本问题中所述),但是我在这里寻找的是购物车本身的标识符

Rei*_*gel 6

你的目标相当有趣。我已阅读 WooCommerce 的代码,但遗憾的是它没有您需要的内容。

不过我有一个建议。这可能会有所帮助。与您自己的类进行woocommerce_init更改WC()->cart,该类扩展到WC_Cart. 然后在你的班级中有一种方法可以设置你的购物车 ID。像下面这样的东西。

add_action( 'woocommerce_init', 'woocommerce_init', 30 );
function woocommerce_init() {
    class myWC_Cart extends WC_Cart {

        private $cart_id = 1234; // set cart id by any means necessary

        public function get_cart_id() {
            return $this->cart_id;
        }
    }
    WC()->cart = new myWC_Cart();
}
Run Code Online (Sandbox Code Playgroud)

这样,在 WooCommerce 准备好或加载的任何地方,您都可以通过调用获取购物车 ID
WC()->cart->get_cart_id();

  • 我不知道。也许是 user_id?这完全取决于您如何使用它。 (3认同)