我在我的产品上有一个元属性,可以通过以下方式对其进行访问:
get_post_meta( $product_id, '_disable_shipping', true );
我需要以编程方式更新MySQL上所有产品的_disable_shipping
属性。有一个简单的方法吗?我想将我所有产品的所有值都更改为yes
。
答案 0 :(得分:2)
您可以创建一个插件并在其中插入一个功能,该功能贯穿您的产品并更新每个产品的元值。如果您不知道如何创建插件,请参见以下教程:https://www.smashingmagazine.com/2011/09/how-to-create-a-wordpress-plugin/只需几分钟即可完成。
在执行批量操作更新产品之前,请确保已备份数据库。
该函数可能看起来像这样:
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;
}
如果激活插件,此功能将运行。之后,您可以再次停用它。
这段代码应该保存得很好,因为如果值是“ no”,它只会更新发布的元数据,因此不应有任何意外的更新。
也许还有一个用于批量编辑产品的插件。这是我发现的第一个似乎正在完成工作的工作,尚未经过测试:https://wordpress.org/plugins/custom-field-bulk-editor/
答案 1 :(得分:2)
您可以使用以下MYSQL查询,wp_postmeta
取决于您的wordpress数据库前缀
UPDATE `wp_postmeta` SET `meta_value` = 'yes' WHERE `meta_key` = '_disable_shipping'