woocommerce - 将自定义字段添加到购物车项目

标签 woocommerce

我正在尝试为我手动添加到购物车的每个项目添加自定义字段。自定义字段是从第三方 API 传回的打印 ID。

需要将其附加到购物车中的每件商品上,以便在订单付款后即可使用它们。

我尝试在手动添加到购物车时使用 $cart_item_data 为每个购物车项目设置自定义字段。我不确定这是否是我需要做的,但上帝喜欢尝试者:)

$woocommerce->cart->add_to_cart( $product_id, 1, '', '', array(printJobId => 12345) );

当我在 woocommerce 中查看订单时,我在任何地方都看不到 printJobId。

有人知道我哪里出错了吗?

谢谢

最佳答案

你还需要两个钩子(Hook):

add_action( 'woocommerce_get_cart_item_from_session',  'cart_item_from_session' , 99, 2 );

function cart_item_from_session( $data, $values ) {
    $data[ 'printJobId' ] = isset( $values[ 'printJobId' ] ) ? $values[ 'printJobId' ] : '';
    return $data;
}

add_filter( 'woocommerce_add_order_item_meta', 'add_item_meta_order', 10, 3 );

function add_item_meta_order( $item_id, $values ) {
    if ( !is_null( $values[ 'printJobId' ] ) ) {
        wc_add_order_item_meta( $item_id, 'printJobId', $values[ 'printJobId' ] );
    }
}

然后您将在后台以及订单详细信息页面上看到元数据

关于woocommerce - 将自定义字段添加到购物车项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19620721/

相关文章:

php - 获取woocommerce购物车总量

html - 将搜索框添加到下拉 Wordpress

mysql - Uncaught Error : Call to undefined function mysql_escape_string() in wordpress

php - 如何自定义 woocommerce "My Account"页面?

php - 在管理区域中禁用通过支付网关的 WordPress Woocommerce 退款

php - WooCommerce - 仅选择一个属性时更改产品图像?

javascript - 电子商务 |通过 Ajax 清除购物车

php - 获取 Woocommerce 产品类别图像 url

php - 向 Woocommerce 3.0 添加股票期权

wordpress - woocommerce_checkout_update_order_meta 操作不起作用