WooCommerceカートページにカスタムフィールドデータを追加する方法


まず、functions.phpファイルに以下のコードを追加します。

function custom_add_cart_item_data( $cart_item_data, $product_id, $variation_id ) {
    if ( isset( $_POST['custom_field'] ) ) {
        $custom_field_value = sanitize_text_field( $_POST['custom_field'] );
        $cart_item_data['custom_data'] = $custom_field_value;
    }
    return $cart_item_data;
}
add_filter( 'woocommerce_add_cart_item_data', 'custom_add_cart_item_data', 10, 3 );

上記のコードでは、woocommerce_add_cart_item_dataフックを使用してカートアイテムデータにカスタムフィールドの値を追加しています。フォームから送信されたcustom_field値を取得し、$cart_item_data配列にcustom_dataとして保存します。

次に、カートページテンプレート(cart.php)に以下のコードを追加します。

function custom_display_cart_item_data( $item_data, $cart_item ) {
    if ( isset( $cart_item['custom_data'] ) ) {
        $item_data[] = array(
            'key'   => 'Custom Field',
            'value' => $cart_item['custom_data'],
        );
    }
    return $item_data;
}
add_filter( 'woocommerce_get_item_data', 'custom_display_cart_item_data', 10, 2 );

上記のコードでは、woocommerce_get_item_dataフックを使用してカートアイテムのデータを表示します。カートアイテムデータにカスタムフィールドが存在する場合、カスタムフィールドのラベルと値を表示します。

これで、WooCommerceカートページにカスタムフィールドデータが表示されるようになります。この方法を使用すると、ユーザーがカートページでカスタムフィールドの値を入力できるフォームを作成することもできます。

このブログ投稿では、WooCommerceのカートページにカスタムフィールドデータを追加する方法を詳しく解説しました。上記のコード例を使用することで、カスタムフィールドを利用して追加の情報をカートに表示することができます。