Woocommerce:如何在woocommerce_add_to_cart钩子上wc_add_order_item_meta?

时间:2017-09-10 20:40:49

标签: php wordpress woocommerce

用例:

  1. 用户将从列表中选择产品的日期并添加 产品到购物车按钮
  2. woocommerce_add_to_cart将触发并
  3. 日期通过wc_add_order_item_meta附加到项目为元

    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);
    }
    
  4. $ result是有效ID,但没有' _event_date' meta包含在结帐购物车项目中。有什么我不理解的东西吗?当我收到它的ID时,应该将Meta键添加到购物车项目,或者?

1 个答案:

答案 0 :(得分:0)

感谢您helgathevikingLoicTheAztec的评论。我在helgathevikingtutorial中找到的解决方案。这正是我所寻找的:

    /*
     * 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 );