我是一名初学者,正在尝试学习Wordpress并拥有价格可变的产品:
我想在我的主题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;
}
答案 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);
}