Di recente ho trovato una funzione che consente di aumentare il prezzo di tutti i prodotti WooCommerce, sia quelli semplici che quelli variabili.
La funzione seguente aggiornerà i prezzi di tutti i prodotti di una percentuale da te scelta. Questo codice potrà essere applicato una sola volta da utenti con accesso admin.
Procediamo supponendo di voler incrementare i prezzi del 10%. Il codice che dovremo inserire nel file functions.php è il seguente:
A questo link potrai trovare una soluzione qualora dovessi avere bisogno di aggiornare i prezzi un’altra volta.
Fonte: https://stackoverflow.com/questions/39462524/woocommerce-increase-prices-of-simple-and-variable-products
function bulk_update_product_prices($percent=0){ if(get_option( 'wc_bulk_updated_prices' ) != 'yes' && is_admin() ) { // previene che i prezzi vengano aggiornati più di una volta add_option( 'wc_bulk_updated_prices' ); $args = array( // WC product post types 'post_type' => array('product', 'product_variation'), // all posts 'numberposts' => -1, 'post_status' => 'publish', ); if($percent == 0) return; echo 'bla bla'; $percent = 1 . '.' . $percent; $shop_products = get_posts( $args ); foreach( $shop_products as $item){ $meta_data = get_post_meta($item->ID); if (!empty($meta_data['_regular_price'])) { $regular_price = $meta_data['_regular_price'][0] * $percent; update_post_meta($item->ID, '_regular_price', $regular_price); } if (!empty($meta_data['_sale_price'])) { $sale_price = $meta_data['_sale_price'][0] * $percent; update_post_meta($item->ID, '_sale_price', $sale_price); } if (!empty($meta_data['_price'])) { $price = $meta_data['_price'][0] * $percent; update_post_meta($item->ID, '_price', $price); } } // Questa opzione impostata con yes previene aggiornamenti multipli. update_option( 'wc_bulk_updated_prices', 'yes'); } } // inserisci la percentuale (se desideri il 10%, metti 10) bulk_update_product_prices(10); // <== == == == == == Here set your percent value
A questo link potrai trovare una soluzione qualora dovessi avere bisogno di aggiornare i prezzi un’altra volta.
Fonte: https://stackoverflow.com/questions/39462524/woocommerce-increase-prices-of-simple-and-variable-products
forse converrebbe mettere queste 3 condizioni prima di aggiornare i vari campi:
if($regular_price !== ” || $regular_price > 0) {
//update_post_meta…
}
if($sale_price !== ” || $sale_price > 0) {
//update_post_meta…
}
if($price !== ” || $price > 0) {
//update_post_meta…
}
altrimenti verrà impostato a 0 il campo sale price se non è compilato. Creando un bel po’ di casino.