【问题标题】:Woocomerce - Update max quantity for product variationWoocommerce - 更新产品变化的最大数量
【发布时间】:2020-06-17 20:24:02
【问题描述】:

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

$available_variations = $product->get_available_variations();


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

}

这不会发生。

【问题讨论】:

    标签: php wordpress woocommerce product-quantity product-variations


    【解决方案1】:

    您没有使用正确的方法来获取变体 ID,并且产品元密钥 max_qty 不存在于 WooCommerce 数据库中 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 文件中。经过测试和工作。

    【讨论】:

    • 谢谢!我选择自己进行数据库更新,因为我找不到这样做的方法。你认为这是更好的解决方案,性能方面吗?
    • @dejan 这是一个更轻量级的解决方案,因为 php 对每个产品都没有额外的数据库请求。
    【解决方案2】:

    为什么不默认设置为 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->query 和 UPDATE 值了。

    已编辑

    【讨论】:

    • 对不起,你不明白我的意思。我有可变产品,有 5 种尺寸:M、L、XL、XXL 和 XXL。当我在我的商店打开这个产品时,我希望将每个变体的数量设置为 345,这意味着我有 M 尺寸 345 的库存,L 尺寸 345 的库存......
    • 我只是以 345 为例。我正在使用 web api 获取数量。我想无论如何都不会是 345。
    • 我不认为 PHP 是您可能想要严重依赖的东西,因为您说您使用的是 API,所以可能会选择 javascript,但正如我之前所说,您应该选择数据库它只是让生活更轻松。
    猜你喜欢
    • 1970-01-01
    • 2020-08-08
    • 2022-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-14
    • 2018-05-25
    • 1970-01-01
    相关资源
    最近更新 更多