Php Woocommerce:如何在Woocommerce上添加\u订单\u商品\u元\u添加\u到\u购物车挂钩?

Php Woocommerce:如何在Woocommerce上添加\u订单\u商品\u元\u添加\u到\u购物车挂钩?,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,用例: 用户将从列表中选择产品的日期并添加 按按钮将产品运送至购物车 woocommerce\u将\u添加到\u购物车将触发 wc_添加_订单_项目_元数据将日期作为元数据附加到项目 add_action( 'woocommerce_add_to_cart', 'add_event_date_meta', 10, 3 ); function add_event_date_meta($cart_item_key, $product_id, $quantity) { $event_date

用例:

  • 用户将从列表中选择产品的日期并添加 按按钮将产品运送至购物车
  • woocommerce\u将\u添加到\u购物车将触发
  • wc_添加_订单_项目_元数据将日期作为元数据附加到项目

    add_action( 'woocommerce_add_to_cart', 'add_event_date_meta',  10, 3 );
    
    function add_event_date_meta($cart_item_key, $product_id, $quantity) {
       $event_date = get_cart_item_event_date();
       $result = wc_add_order_item_meta( $product_id, '_event_date', $event_date);
    }
    
  • $result是有效的id,但签出购物车项目中不包含“\u event\u date”元。有什么我不明白的吗?当我收到购物车项目的id时,应将元密钥添加到购物车项目中,或者?

    谢谢您和您的评论。我在中找到的解决方案是。这正是我一直在寻找的:

        /*
         * Add custom data to the cart item
         * @param array $cart_item
         * @param int $product_id
         * @return array
         */
        function kia_add_cart_item_data( $cart_item, $product_id ){
           if( isset( $_POST['_custom_option'] ) ) {
              $cart_item['custom_option'] = sanitize_text_field( $_POST['_custom_option'] );
           }
           return $cart_item;
        }
        add_filter( 'woocommerce_add_cart_item_data', 'kia_add_cart_item_data', 10, 2 );
    
    谢谢你和你的评论。我在中找到的解决方案是。这正是我一直在寻找的:

        /*
         * Add custom data to the cart item
         * @param array $cart_item
         * @param int $product_id
         * @return array
         */
        function kia_add_cart_item_data( $cart_item, $product_id ){
           if( isset( $_POST['_custom_option'] ) ) {
              $cart_item['custom_option'] = sanitize_text_field( $_POST['_custom_option'] );
           }
           return $cart_item;
        }
        add_filter( 'woocommerce_add_cart_item_data', 'kia_add_cart_item_data', 10, 2 );
    

    当还没有订单项时,无法添加订单项元。在自定义签出字段中签出我的帐户。检查“在结帐时保存额外数据”部分。@helgatheviking…可能我错了,但我认为这与产品自定义字段有关,而不是自定义结帐字段。Op首先使用“添加到购物车”按钮提交此数据。然后,他需要先将这些数据保存在购物车对象中,然后才能将其从购物车中获取到相关的订单项目。嗯,我想你是对的。我有一本书。无论哪种方式,都不能在没有订单项的情况下添加订单项元数据。如果还没有订单项,则不能添加订单项元数据。在自定义签出字段中签出我的帐户。检查“在结帐时保存额外数据”部分。@helgatheviking…可能我错了,但我认为这与产品自定义字段有关,而不是自定义结帐字段。Op首先使用“添加到购物车”按钮提交此数据。然后,他需要先将这些数据保存在购物车对象中,然后才能将其从购物车中获取到相关的订单项目。嗯,我想你是对的。我有一本书。无论哪种方式,都不能在没有订单项的情况下添加订单项元。