質問: apply_filters( 'woocommerce_add_cart_item', array_merge( $cart_item_data, array( 'product_id' => $product_id, 'variation_id' => $variation_id, 'variation' => $variation, 'quantity' => $quantity, 'data' => $product_data, 'mmcentre' => $mmcentre ) ), $cart_item_key ); 問題は、cartページでその値を取得できないことです。cart_contentsをダンプしましたが、配列に渡された値がわかりません。私がしているのは何が悪いのか教えてください。
回答: 私はしばらく前に同様のことをしなければなりませんでした、これは私のために働いていたものです:この例では、カスタム入力名は「カートに追加」フォーム内の「test_field」です。このようにしてcart_contentsをダンプすると、最後のどこかに値が表示されます。//store the custom field add_filter( 'woocommerce_add_cart_item_data', 'add_cart_item_custom_data_vase', 10, 2 ); function add_cart_item_custom_data_vase( $cart_item_meta, $product_id ) { global $woocommerce; $cart_item_meta['test_field'] = $_post['test_field']; return $cart_item_meta; } //get it from the session and add it to the cart variable function get_cart_items_from_session( $item, $values, $key ) { if ( array_key_exists( 'test_field', $values ) ) $item[ 'mmcentre' ] = $values['test_field']; return $item; } add_filter( 'woocommerce_get_cart_item_from_session', 'get_cart_items_from_session', 1, 3 );