[英]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.