我有一个woocommerce变量产品在循环之外,而不是在单个产品页面上,我要根据表单的选择更改变体价格。如果选择了区域,则使用为该变体创建的自定义域中添加的自定义价格更改变体价格(区域1或区域2)。我的代码用于在选择后显示正确的价格,但当我将变体添加到购物车时,变体的默认价格被添加到购物车,而不是自定义价格价格。
<form class="areas-form" method="POST" action="">
Select Your Area
<select name="area" onchange="this.form.submit()">
<option value="" disabled selected>--select--</option>
<option value="area1">Area 1</option>
<option value="area2">Area 2</option>
</select>
</form>
add_filter( 'woocommerce_product_variation_get_price', 'varient_price', 99, 2 ); // this code is added in functions.php
function varient_price($price, $variation){
if ( $variation->product_type == 'variation' ) {
if(isset($_POST["area"])){
$area=$_POST["area"];
}
$price = get_post_meta( $variation->variation_id, $area.'_price',true);
return $price;
}
}
1条答案
按热度按时间jyztefdp1#
根据你的问题评论,休息显示和其他事情你正在管理。在这里,我刚刚附上了woocommerce挂钩和计算,让您的地区价格设置在您选择的变化。
首先,您需要根据区域信息获取所选选项的动态价格。
其次,以下代码将帮助您设置要添加到购物车 meta中的参数请求:
第三,在将产品添加到购物车之前。上面的代码将获取我们使用上面的代码添加的区域价格值,下面的代码将在购物车中将您的区域价格设置为新价格。
如果您发现任何问题,请告诉我。