【问题标题】:How i can store cart item price as new line meta item in woocommerce oders我如何将购物车项目价格存储为 woocommerce 订单中的新行元项目
【发布时间】:2019-09-27 08:33:05
【问题描述】:

我正在寻找将每个购物车产品价格或常规价格存储在 Woocommerce 订单行项目元数据上的功能。我为此创建了以下函数,但它不起作用。我想将购物车产品价格存储为新的自定义订单项元数据。

add_action( 'woocommerce_checkout_create_order_line_item', 'custom_checkout_create_order_line_item', 20, 4 );
function custom_checkout_create_order_line_item( $item, $cart_item_key, $values, $order ) {

$custom_field_value = get_post_meta( $item->get_product_id(), 'price', true );

    if ( ! empty( $custom_field_value ) ){
        $item->update_meta_data( 'meta_new', $custom_field_value );
    }

}

【问题讨论】:

  • 当问题陈述很简单时,很难提供解决方案,"it doesn't work"。请edit您的问题更完整地描述您预期会发生什么以及这与实际结果有何不同。请参阅 How to Ask 以获取有关什么是好的解释的提示。

标签: php wordpress woocommerce


【解决方案1】:

你可以这样做-

function add_line_item_meta_data( $item, $cart_item_key, $values, $order ) {
    // add item price
    $product = $values['data'];
    $item->add_meta_data( 'meta_new', $product->get_price() );
}
add_action( 'woocommerce_checkout_create_order_line_item', 'add_line_item_meta_data', 99, 4 );

代码转到您的活动主题的functions.php

【讨论】:

  • line_subtotal 会随着数量的变化而变化
  • 我用商品价格值更新了答案。请检查。
猜你喜欢
  • 1970-01-01
  • 2018-05-31
  • 1970-01-01
  • 2020-02-28
  • 1970-01-01
  • 2023-03-31
  • 2018-08-29
  • 1970-01-01
  • 2021-04-16
相关资源
最近更新 更多