本文介紹了將產品自定義字段值保存在購物車中并將其顯示在購物車和結帳中的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我在主題的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.
這篇關于將產品自定義字段值保存在購物車中并將其顯示在購物車和結帳中的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!
【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!