如何在购物车页面上添加自定义输入字段? 我一直在开发一个WooCommerce网站,我有一项任务。我需要在购物车项目表中添加一个额外的自定义输入字段。 例如,如果一个人订购的2000 YouTube

问题描述 投票:0回答:2
产品页面上添加自定义输入字段,并且可以简单地将其显示在

CART页面上。但是我想将用户输入数据带到CART页面

。每个购物车项目都有一个自定义输入字段。到目前为止,我已经进行了很多研究,但我的解决方案没有任何成功。我发现要将自定义输入字段数据打印到

产品页面上的“购物车”页面上。 任何帮助都将不胜感激 我也遇到了这个问题。我已经解决了这个问题。像您一样在购物车页面上添加字段,但随着jQuery接收这些值,并通过get请求(将它们添加到“提交”按钮中),并在隐藏的输入类型中填充它们中的“添加到“提交”按钮)。

1。在每个购物车下方显示自定义输入字段 add_action('woocommerce_after_cart_item_name', 'custom_cart_item_input_field', 10, 2); function custom_cart_item_input_field($cart_item, $cart_item_key) { // Get saved value if exists $custom_input_value = isset($cart_item['custom_youtube_url']) ? $cart_item['custom_youtube_url'] : ''; echo '<p><strong>Enter YouTube URL:</strong></p>'; echo '<input type="text" name="custom_youtube_url[' . esc_attr($cart_item_key) . ']" value="' . esc_attr($custom_input_value) . '" />'; } 2。更新购物车时保存自定义输入数据

add_action('woocommerce_cart_actions', 'save_custom_cart_item_data'); function save_custom_cart_item_data() { if (isset($_POST['custom_youtube_url']) && !empty($_POST['custom_youtube_url'])) { foreach ($_POST['custom_youtube_url'] as $cart_item_key => $custom_input_value) { WC()->cart->get_cart()[$cart_item_key]['custom_youtube_url'] = sanitize_text_field($custom_input_value); } } }
php wordpress woocommerce shopping-cart custom-fields
2个回答
0
投票

3。将数据保存到购物车项目meta


-1
投票
add_filter('woocommerce_add_cart_item_data', 'add_custom_cart_item_data', 10, 2); function add_custom_cart_item_data($cart_item_data, $product_id) { if (isset($_POST['custom_youtube_url'])) { $cart_item_data['custom_youtube_url'] = sanitize_text_field($_POST['custom_youtube_url']); } return $cart_item_data; }

4。在购物车中显示数据

add_filter('woocommerce_get_item_data', 'display_custom_cart_item_data', 10, 2); function display_custom_cart_item_data($item_data, $cart_item) { if (!empty($cart_item['custom_youtube_url'])) { $item_data[] = array( 'name' => 'YouTube URL', 'value' => esc_html($cart_item['custom_youtube_url']) ); } return $item_data; }

5。保存数据以订购元

add_action('woocommerce_checkout_create_order_line_item', 'save_custom_data_to_order', 10, 4); function save_custom_data_to_order($item, $cart_item_key, $values, $order) { if (!empty($values['custom_youtube_url'])) { $item->add_meta_data('YouTube URL', $values['custom_youtube_url']); } }
还提供高级插件,可以帮助您直接将自定义输入字段添加到每个购物车项目的WooCommerce购物车页面。一个这样的插件是插件共和国的the the the the the the Profoductustimate

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.