public function update_product_stock($product_id_with_stock, $stock_quantity = null, $operation = 'set')
{
global $wpdb;
add_post_meta($product_id_with_stock, '_stock', 0, true);
// Update stock in DB directly
switch ($operation) {
case 'increase':
$wpdb->query($wpdb->prepare("UPDATE {$wpdb->postmeta} SET meta_value = meta_value + %f WHERE post_id = %d AND meta_key='_stock'", $stock_quantity, $product_id_with_stock));
break;
case 'decrease':
$wpdb->query($wpdb->prepare("UPDATE {$wpdb->postmeta} SET meta_value = meta_value - %f WHERE post_id = %d AND meta_key='_stock'", $stock_quantity, $product_id_with_stock));
break;
default:
$wpdb->query($wpdb->prepare("UPDATE {$wpdb->postmeta} SET meta_value = %f WHERE post_id = %d AND meta_key='_stock'", $stock_quantity, $product_id_with_stock));
break;
}
wp_cache_delete($product_id_with_stock, 'post_meta');
}