通过 API 在 woocommerce 中创建客户价格

Creating a customer price in woocommerce via API

我找到了一个创建客户特定定价的插件,但似乎是一个外部 API 调用,似乎不是我正在寻找的解决方案。

https://woocommerce.com/products/wisdm-customer-specific-pricing/

我对购物车的工作原理和产品的存储方式感到困惑。但是基于这个 post 它向我展示了如何用客户 ID 替换购物车价格,并且 sku 被传递给 API。

我用这个 ticket 开始我的回答

所以我需要弄清楚的重要事情是如何调用购物车,遍历每个产品并获取它的产品 SKU,然后覆盖价格。

我在我的主题 functions.php 中添加了以下内容,以更改我的购物车以根据我的客户 API 定价显示正确的定价。这会循环遍历我所有的购物车商品,然后调用 API 和 returns 特定客户和 sku 的价格。

add_action( 'woocommerce_before_calculate_totals', 'add_custom_price' );

function add_custom_price( $cart_object ) {
    foreach ( $cart_object->cart_contents as $key => $value ) {
         $response = get_api_response($value['data']->get_sku(), $customer_id);
         $custom_price = $response->price;

         $value['data']->set_price($custom_price);
    }
}