2

我正在尝试将我的可变产品的所有变体的最大数量更新为 345。

$available_variations = $product->get_available_variations();


foreach ($available_variations as $variation) 
{ 
$variation_ID = $variation->ID;
update_post_meta( $variation_ID , 'max_qty', 345 );

}

它不会发生。

4

2 回答 2

1

您没有使用正确的方法来获取变体 ID,并且max_qtyWooCommerce 数据库中不存在用于帖子类型的wp_postmeta表上的产品元密钥。product_variation

相反,您可以使用以下过滤器挂钩为产品变体设置特定的最大数量:

add_filter( 'woocommerce_available_variation', 'wc_available_variation_max_qty', 10, 3 );
function wc_available_variation_max_qty( $data, $product, $variation ) {
    $data['max_qty'] = 345;

    return $data;
}

代码在您的活动子主题(或活动主题)的functions.php 文件中。测试和工作。

于 2020-06-17T21:51:43.217 回答
0

为什么不默认设置为 345?

$max_m = $max_l = $max_xl = $max_xxl = $max_xxxl = '345';

if($max_qty != 345){
   //Limit Reached error
}

或者

$product->get_available_variations = '345';
if($variation_ID != 345){
    $variation_ID->max_qty = 345;
}

既然是网上商店,为什么不使用 MySQLi?它是由 PHP 驱动的,为什么不呢?这样你就可以做 MySQLi-> 查询,并更新值。

已编辑

于 2020-06-17T20:31:52.843 回答