我正在尝试使用以下功能在购物车中更改产品价格:
add_action( 'woocommerce_before_shipping_calculator', 'add_custom_price'
);
function add_custom_price( $cart_object ) {
foreach ( $cart_object->cart_contents as $key => $value ) {
$value['data']->price = 400;
}
}
Run Code Online (Sandbox Code Playgroud)
它在WooCommerce版本2.6.x中正常工作,但在3.0+版本中不再有效
如何让它在WooCommerce版本3.0+中运行?
谢谢.
我在 WooCommerce 上创建了一个产品,并使用 hook 在产品详细信息页面上添加了两个选项woocommerce_before_add_to_cart_button。现在,当客户从产品详细信息页面将产品添加到购物车时,他们有两个选项。他们可以从这两个选项中选择一个。
然后我使用 woocommerce_add_cart_item_data 将用户选择的值存储在购物车元数据中。
我正在使用此答案中的代码:在购物车中保存产品自定义字段单选按钮值并在购物车页面上显示它
这是我的代码:
// single Product Page options
add_action("woocommerce_before_add_to_cart_button", "options_on_single_product");
function options_on_single_product(){
$dp_product_id = get_the_ID();
$product_url = get_permalink($dp_product_id);
?>
<input type="radio" name="custom_options" checked="checked" value="option1"> option1<br />
<input type="radio" name="custom_options" value="option2"> option2
<?php
}
//Store the custom field
add_filter( 'woocommerce_add_cart_item_data', 'save_custom_data_with_add_to_cart', 10, 2 );
function save_custom_data_with_add_to_cart( $cart_item_meta, $product_id ) {
global $woocommerce;
$cart_item_meta['custom_options'] = $_POST['custom_options'];
return $cart_item_meta;
}
Run Code Online (Sandbox Code Playgroud)
这就是我尝试过的:
add_action( 'woocommerce_before_calculate_totals', 'add_custom_price', 10, 1);
function add_custom_price( $cart_obj ) {
if …Run Code Online (Sandbox Code Playgroud)