可变产品的价格(woocommerce)

时间:2017-10-23 10:21:12

标签: php wordpress woocommerce

请告诉我。篮子在哪里获得变分产品的价值,随后乘以 TOTAL SUBTOTAL 的数量和发行?问题是您需要将产品的成本从自定义字段发送到购物篮。

对于一个简单的产品,一切都结果。以下函数已添加到文件 abstract-wc-product.php

public function get_rrp_price( $context = 'view' ) {
    return $this->get_meta( $key = 'rrp_price', $context = 'view' );
}

rrp_price - 是具有新价格的任意字段的名称。然后在模板 class-wc-cart.php 中,即在以下函数中:

public function calculate_totals(
public function get_product_subtotal(

我用 $ product-&gt; get_rrp_price()替换 $ product-&gt; get_price(),对于简单的产品,它全部工作了!< /强>

但是当您添加变量产品时,购物篮会发出 ZERO 。我无法理解它可以在哪个地方修复,我想在 class-wc-product-variable.php ,但是如果是这样,在哪里以及如何?

2 个答案:

答案 0 :(得分:2)

之前我遇到过这个问题,但我找到了解决方案,请查看下面的代码,我想你可以得到完美的想法。

function opal_varient_price( $price, $variation ) {

if (  $variation->product_type == 'variation'  ) {

    $user = $user ? new WP_User( $user ) : wp_get_current_user();
    $role = $user->roles[0];
    if($role == 'detailer'){$pricex = get_post_meta( $variation->variation_id, 'dist',true);}
    else if($role == 'reseller'){$pricex = get_post_meta( $variation->variation_id, 'res',true);}  
    else{ $pricex = $price;}
    }
return $pricex;
}

add_filter( 'woocommerce_product_variation_get_regular_price', 'opal_varient_price' , 99, 2 );
add_filter( 'woocommerce_product_variation_get_sale_price', 'opal_varient_price' , 99, 2 );
add_filter( 'woocommerce_product_variation_get_price', 'opal_varient_price', 99, 2 );

答案 1 :(得分:0)

我已尝试过此操作(更改了'dist''rest' 'rrp_price'):

function opal_varient_price( $price, $variation ) {

if (  $variation->product_type == 'variation'  ) {

    $user = $user ? new WP_User( $user ) : wp_get_current_user();
    $role = $user->roles[0];
    if($role == 'detailer'){$pricex = get_post_meta( $variation->variation_id, 'rrp_price',true);}
    else if($role == 'reseller'){$pricex = get_post_meta( $variation->variation_id, 'rrp_price',true);}  
    else{ $pricex = $price;}
    }
return $pricex;
}

add_filter( 'woocommerce_product_variation_get_regular_price', 'opal_varient_price' , 99, 2 );
add_filter( 'woocommerce_product_variation_get_sale_price', 'opal_varient_price' , 99, 2 );
add_filter( 'woocommerce_product_variation_get_price', 'opal_varient_price', 99, 2 );

但可变产品在购物车中仍然 ZERO