我需要将woocommerce中的所有股票重置为outofstock。或者将所有产品的库存设置为零。非此即彼。没关系。
到目前为止我已经写过了。
function clear_current_stock(){
$sql = "UPDATE wp_postmeta SET meta_value = 'outofstock' WHERE meta_value = 'instock' AND meta_key = '_stock_status'";
// run queries
if ($wpdb->query( $sql ) === TRUE) {
echo "Record updated successfully";
} else {
echo "Error updating record";
}
}
我已经调用了这个函数。 (只是为了测试并确保它正常工作)
<?php clear_current_stock(); ?>
但是这个功能并没有做任何事情。请帮忙。
有一个类似的问题here。
但它没有帮助我。
完成的代码需要什么。是单击调用此功能的按钮。然后将所有类型产品的帖子设置为零库存。或者是outofstock
答案 0 :(得分:0)
我的答案过程。
首先,我进入MYSQL工作台并在工作台中运行查询。这向我显示选择数据库时出错。
我修复了我的sql查询,因此它在MYSQL工作台中工作。然后我继续我的功能。
我发现在我的功能中我并没有声明我的变量。
我必须先为$ wpdb声明我的变量才能在第一时间工作。其中如上所示尚未完成。
这是100%
的最终功能// Clear Stock
function clear_current_stock(){
// Declare the $wpdb var
global $wpdb;
// Run My SQL Query (My Query is setting the meta value for stock to zero)
$wpdb->query("UPDATE wp_postmeta SET meta_value = 0 WHERE meta_key = '_stock'");
// Check if there were any errors or if my query was successful.
if ( is_wp_error( $wpdb ) ) {
echo $wpdb->get_error_message();
}
else {
echo 'true';
}
}
然后,您只需要在任何地方或者何时想要运行查询时调用该函数。这可以这样做。
<?php clear_current_stock(); ?>