繁体   English   中英

Woocommerce:如何以编程方式更新所有产品的元属性值

[英]Woocommerce: How to update meta attribute value of all products programmatically

我的产品有一个元属性,可以这样访问:

get_post_meta( $product_id, '_disable_shipping', true );

我需要在 MySQL 上或以编程方式更新所有产品的_disable_shipping属性。 有一种简单的方法吗? 我想将我所有产品的所有值都更改为yes

您可以创建一个插件并在其中放置一个 function,它会贯穿您的产品并更新每个产品的元值。 如果您不知道如何创建插件,这里有一个教程: https://www.smashingmagazine.com/2011/09/how-to-create-a-wordpress-plugin/它在几分钟内完成.

在执行批量操作以更新您的产品之前,请确保您有数据库的备份。

function 看起来像这样:

function disable_shipping_once(){

$products = get_posts(array('post_type' => 'product', 'numberposts' => -1) );

foreach($products as $product) :  


    $product_ID = $product->ID;
    $meta_value = get_post_meta($product_ID, '_disable_shipping',true);

    if($meta_value == "no") :

        update_post_meta($product_ID, '_disable_shipping-include', 'yes' );

    endif;

endforeach; 
}

如果你激活你的插件,这个 function 将会运行。 之后,您可以再次停用它。

这段代码应该非常省事,因为它只更新帖子元数据,如果值为“否”,则不应有任何意外的帖子更新。


也许还有一个用于批量编辑您的产品的插件。 这是我发现的第一个似乎在做这项工作,还没有测试过: https://wordpress.org/plugins/custom-field-bulk-editor/

您可以使用以下 MYSQL 查询, wp_postmeta取决于您的 wordpress 数据库前缀

UPDATE `wp_postmeta` SET `meta_value` = 'yes' WHERE `meta_key` = '_disable_shipping'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM