douqiaolong0528 2019-04-11 15:53
浏览 39

在购物车/结账时显示变化产品的自定义价格

I have a custom product (a rug) that's price is determined by the user's chosen length and width.

I can handle the changing of price easily on the product page using jQuery.

But I'm struggling to find something that will take the user's choices, and use them to calculate a custom price on cart/checkout.

I'm saving the user's inputted data into $cart_item_data like so...

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;
}

But I'm not sure how to change the price only on checkout.

I tried following some advice on another thread and use:

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; 
}

But this returns the static price, and I can't seem to access the cart_item_data from inside this function.

And I can't get it to only display on cart/checkout.

Any advice?

Thanks, Jack

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 R语言Rstudio突然无法启动
    • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
    • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
    • ¥15 用windows做服务的同志有吗
    • ¥60 求一个简单的网页(标签-安全|关键词-上传)
    • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
    • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
    • ¥100 为什么这个恒流源电路不能恒流?
    • ¥15 有偿求跨组件数据流路径图
    • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值