获取WooCommerce的最低变化价格

时间:2017-08-05 06:06:13

标签: php wordpress woocommerce categories product

我是一名初学者,正在尝试学习Wordpress并拥有价格可变的产品:

  • cod Rs 250
  • 在线Rs 200

我想在我的主题functions.php中使用最低价格。

我如何获取或获取最小值?

我想在下面的代码中使用:

function filter_gateways($gateways){

    $payment_NAME = 'cod'; // 
    $min_variation_price = ''; <--------------- minimum variation price

    global $woocommerce;

    foreach ($woocommerce->cart->cart_contents as $key => $values ) {
        // Get the terms, i.e. category list using the ID of the product
        $terms = get_the_terms( $values['product_id'], 'product_cat' );
        // Because a product can have multiple categories, we need to iterate through the list of the products category for a match
        foreach ($terms as $term) {
            // 20 is the ID of the category for which we want to remove the payment gateway
            if($term->term_id == $min_variation_price){
                unset($gateways[$payment_NAME]);
                // If you want to remove another payment gateway, add it here i.e. unset($gateways['cod']);
                break;
            }
            break;
        }
    }
    return $gateways;
}

2 个答案:

答案 0 :(得分:5)

要从 contactKey 对象获取woocommerce中的最小变化有效价格:

mockContactKey
  

看来你正试图在这里取消鳕鱼&#39;当购物车项目最小变化价格与其产品类别ID匹配时的支付网关。

使用WordPress条件函数 WC_Product_Variable 将真正简化您的代码(它接受任何分类的术语ID,术语slu或术语名称(如&#39; product_cat&#39; here对于产品类别)。

我认为您的功能已隐藏在 $variation_min_price = $product->get_variation_price('min'); 过滤器挂钩...

我对您的代码进行了一些更改,因为它有点过时并出现了一些错误:

has_term()

代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。

这应该有效(但我无法对其进行测试,因为它对于产品类别ID和最小变化价格非常具体) ......

相关答案:

Disable WooCommerce Payment methods if cart item quantity limit is reached

答案 1 :(得分:2)

我认为你正在寻找:

add_filter( 'woocommerce_variable_sale_price_html', 'get_min_variation_price_format', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'get_min_variation_price_format', 10, 2 );

function get_min_variation_price_format( $price, $product ) {
    $min_variation_price = $product->get_variation_regular_price( 'min');
    return wc_price($min_variation_price);
}