Save product custom field value in cart and display it on Cart and checkout(将产品自定义字段值保存在购物车中并将其显示在购物车和结帐中)
问题描述
我在主题的functions.php中使用以下代码在woocommerce单个产品页面上添加了一些自定义选项:
I have added some custom options on woocommerce single product page using the code below on my theme's functions.php:
function options_on_single_product(){
?>
<input type="radio" name="option1" checked="checked" value="option1"> option 1 <br />
<input type="radio" name="option1" value="option2"> option 2
<?php
}
add_action("woocommerce_before_add_to_cart_button", "options_on_single_product");
现在我想在购物车页面上显示选定的选项值.请帮我做这件事.谢谢
Now i want to display the selected option value on cart page. Please help me to do this. Thanks
推荐答案
以下是在购物车对象中存储产品自定义字段并在购物车和结帐页面中显示的完整代码:
Here is the complete code to Store product custom field in cart object and display that in Cart and Checkout pages:
// Output the Custom field in Product pages
add_action("woocommerce_before_add_to_cart_button", "options_on_single_product", 1);
function options_on_single_product(){
?>
<label for="custom_field">
<input type="radio" name="custom_field" checked="checked" value="option1"> option 1 <br />
<input type="radio" name="custom_field" value="option2"> option 2
</label> <br />
<?php
}
// Stores the custom field value in Cart object
add_filter( 'woocommerce_add_cart_item_data', 'save_custom_product_field_data', 10, 2 );
function save_custom_product_field_data( $cart_item_data, $product_id ) {
if( isset( $_REQUEST['custom_field'] ) ) {
$cart_item_data[ 'custom_field' ] = esc_attr($_REQUEST['custom_field']);
// below statement make sure every add to cart action as unique line item
$cart_item_data['unique_key'] = md5( microtime().rand() );
}
return $cart_item_data;
}
// Outuput custom Item value in Cart and Checkout pages
add_filter( 'woocommerce_get_item_data', 'output_custom_product_field_data', 10, 2 );
function output_custom_product_field_data( $cart_data, $cart_item ) {
if( isset( $cart_item['custom_field'] ) ) {
$cart_data[] = array(
'key' => __('Custom Item', 'woocommerce'),
'value' => $cart_item['custom_field'],
'display' => $cart_item['custom_field'],
);
}
return $cart_data;
}
代码位于活动子主题(或主题)的 function.php 文件或任何插件文件中.
此代码已经过测试且有效.
This code is tested and works.
这篇关于将产品自定义字段值保存在购物车中并将其显示在购物车和结帐中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:将产品自定义字段值保存在购物车中并将其显示
基础教程推荐
- 超薄框架REST服务两次获得输出 2022-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- 在多维数组中查找最大值 2021-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01