Come rimuovere e ripristinare il prezzo scontato in WooCommerce

Per ripristinare o rimuovere il prezzo scontato da ogni prodotto di Woo, possiamo usare questa funzione e fare in modo che gli sconti di tutto il nostro e-commerce vengano ripristinati.

Attenzione! Questa funzione va chiamata solo 1 volta e poi dovete commentare la riga 30, in modo che l’azione non venga più eseguita. Quindi useremo questa funzione 1 sola volta.

function mm_ripristino_prezzo_scontato() {
    $args = array(
        'status' => 'publish',
        'limit' => -1, // Ottieni tutti i prodotti
        'type' => array('simple', 'variable'), // Tipi di prodotto da includere
        'orderby' => 'type',
        'order' => 'DESC',
    );

    $prodotti = wc_get_products($args);

    foreach ($prodotti as $prodotto) {
        $id = $prodotto->get_id();

        // Aggiorno il prezzo scontato
        $prodotto->set_sale_price('');
        $prodotto->save();

        // Riaggiorno il prezzo di listino
        $regular_price = $prodotto->get_regular_price();
        $prodotto->set_price($regular_price);
        $prodotto->save();

        // Se siamo in un prodotto variabile, sincronizziamo i prezzi delle variazioni
        if ($prodotto->is_type('variable')) {
            $prodotto->variable_product_sync();
        }
    }
}
add_action('admin_init', 'mm_ripristino_prezzo_scontato');

Se vogliamo ripristinare solo certe categorie dobbiamo invece inserire questo codice e sostituire con le categorie che ci interessano:

function mm_ripristino_prezzo_scontato() {
    $args = array(
        'status' => 'publish',
        'limit' => -1, // Ottieni tutti i prodotti
        'type' => array('simple', 'variable'), // Tipi di prodotto da includere
        'orderby' => 'type',
        'order' => 'DESC',
        'category' => array('categoria-1', 'categoria-2'), // Filtra per categorie
    );

    $prodotti = wc_get_products($args);

    foreach ($prodotti as $prodotto) {
        $id = $prodotto->get_id();

        // Aggiorno il prezzo scontato
        $prodotto->set_sale_price('');
        $prodotto->save();

        // Riaggiorno il prezzo di listino
        $regular_price = $prodotto->get_regular_price();
        $prodotto->set_price($regular_price);
        $prodotto->save();

        // Se siamo in un prodotto variabile, sincronizziamo i prezzi delle variazioni
        if ($prodotto->is_type('variable')) {
            $prodotto->variable_product_sync();
        }
    }
}
//add_action('admin_init', 'mm_ripristino_prezzo_scontato');

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *