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);
}
}
}
3。将数据保存到购物车项目meta
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。