You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过WooCommerce测量价格计算器程序化处理价格网格产品的价格与加购?

解决WooCommerce Measurement Price Calculator插件附加产品价格获取与加购问题

核心思路

该插件的价格计算依赖产品的测量参数,需要模拟前端提交的测量数据,调用插件内置的计算函数,或在添加购物车时携带对应元数据,才能获取正确的价格网格对应价格。

1. 获取附加产品的计算后价格

插件内置了wc_measurement_price_calculator_get_product_price函数,可直接传入产品对象和测量参数来计算价格:

// 附加产品ID
$addon_product_id = 123;
// 从主产品同步的尺寸参数(需与插件后台设置的字段名匹配)
$measurement_params = array(
    'width'  => 10,  // 对应价格网格的宽度值
    'height' => 20,  // 对应价格网格的高度值
    'width_unit' => 'cm', // 单位需与插件设置一致
    'height_unit' => 'cm'
);

// 确保插件函数存在再调用
if (function_exists('wc_measurement_price_calculator_get_product_price')) {
    $product = wc_get_product($addon_product_id);
    $calculated_price = wc_measurement_price_calculator_get_product_price($product, $measurement_params);
    // $calculated_price即为该尺寸对应的单价
}

2. 携带测量参数添加附加产品到购物车

调用add_to_cart时,需将测量参数放入cart_item_data数组,确保插件能识别并计算正确价格:

$addon_product_id = 123;
$quantity = 1;
$variation_id = 0; // 可变产品需传入对应变体ID,普通产品填0

// 构造测量元数据,键名需与插件字段名完全匹配
$cart_item_data = array(
    '_measurement' => array(
        'width'       => 10,
        'height'      => 20,
        'width_unit'  => 'cm',
        'height_unit' => 'cm'
    )
);

// 添加到购物车
WC()->cart->add_to_cart(
    $addon_product_id,
    $quantity,
    $variation_id,
    array(), // 变体属性(可变产品需传入对应属性数组)
    $cart_item_data
);

关键注意事项

  • 参数键名匹配:需和插件后台设置的测量字段名完全一致,可通过查看产品前端页面的表单输入框name属性确认(如_measurement[width]对应的键为width)。
  • 价格网格适配:只要传入的尺寸落在价格网格的对应区间内,插件会自动匹配对应的单价,无需额外处理区间判断。
  • 函数兼容性:确保插件处于激活状态,wc_measurement_price_calculator_get_product_price函数仅在插件激活时可用。

内容的提问来源于stack exchange,提问作者katsucurry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 01:27:47