在购物车/结帐处显示变动产品的自定义价格

时间:2019-04-11 15:53:58

标签: php wordpress woocommerce

我有一个定制产品(地毯),其价格取决于用户选择的长度和宽度。

我可以使用jQuery在产品页面上轻松处理价格变化。

但是我正在努力寻找可以满足用户选择的东西,并使用它们来计算购物车/结帐时的自定义价格。

我将用户输入的数据保存到$ cart_item_data中,就像这样...

function smcrp_add_custom_rug_fields_to_cart_item( $cart_item_data, $product_id, $variation_id ) {
    $length_text = filter_input( INPUT_POST, 'smcrp-length' );
    $width_text = filter_input( INPUT_POST, 'smcrp-width' );
    $unit_text = filter_input( INPUT_POST, 'smcrp-unit' );

    if ( empty( $length_text ) && empty( $width_text ) && empty( $unit_text ) ) {
        return $cart_item_data;
    }

    $cart_item_data['smcrp-length'] = $length_text;
    $cart_item_data['smcrp-width'] = $width_text;
    $cart_item_data['smcrp-unit'] = $unit_text;

    return $cart_item_data;
}

但是我不确定如何仅在结帐时更改价格。

我尝试在另一个线程上遵循一些建议并使用:

function smcrp_custom_rug_price( $price, $product ) {
  wc_delete_product_transients($product->get_id());

  if ( strpos( $product->get_data()["name"],  "- Custom" ) === FALSE )
    return $price;

  return 180; 
}

但这会返回静态价格,我似乎无法从此函数内部访问cart_item_data。

而且我无法让它仅显示在购物车/结帐栏上。

有什么建议吗?

谢谢, 杰克

0 个答案:

没有答案