php 我可以添加一个产品使用woocommerce测量价格计算器编程?

mrphzbgm  于 2023-11-16  发布在  PHP
关注(0)|答案(1)|浏览(117)

我正在使用woocommerce测量价格计算器插件来获取价格使用价格网格.我添加一个产品到我的购物车,而已经在一个产品,因为这是一个额外的选项.

我的主要目标是根据该产品的价格网格获得价格。

它将使用相同的测量作为我的主要产品,因为它是一个选项,所以我可以通过这些,我只是不知道如何。
我知道我可以通过Ajax或PHP中的不同方式将常规产品添加到我的购物车中,方法如下:

WC()->cart->add_to_cart($item['product_id'], $item_qty);

字符串
我也可以只得到一个产品的价格使用以下:

$product = wc_get_product($product_id); 
return $product->get_price();


这工作正常,但我现在需要从测量插件中获取使用价格网格的产品的价格,我不知道如何做到这一点。documentation似乎没有向我展示如何以编程方式从价格网格中检索价格。任何帮助或想法将不胜感激。

js5cn81o

js5cn81o1#

感谢LoicTheAztec的评论,我终于弄明白了这一点,所以我在这里发布答案。根据我们想要用于价格网格的计算,测量和范围检查可以调整。我只想检查一个测量范围的高端。
由于价格网格存储在postmeta表中,其元键为'_wc_price_calculator_pricing_rules',因此我们可以获取价格网格,然后遍历每个项目,直到找到与我们的测量值匹配的规则。然后我们可以从该规则中提取价格并以某种方式使用它。

$product = wc_get_product($id);
$measurement_enabled = WC_Price_Calculator_Product::calculator_enabled( $product );

if ($measurement_enabled) {
    $price_grid = $product->get_meta('_wc_price_calculator_pricing_rules');
    $measurements_total = 2000; // example value, i get mine from the cart_item_data
    $price_grid_price = 0;

    foreach ($price_grid as $grid_item) {
        if ($grid_item['range_end'] < $measurements_total) {
            $price_grid_price = $grid_item['price'];
        }
        else {
            break;
        }
    }

    return $price_grid_price;
}

字符串

相关问题