Cum să treci magazinul WooCommerce la TVA 21% și să actualizezi automat toate prețurile
✅ Partea 1: Modificarea TVA în WooCommerce
1. Intră în admin: WooCommerce > Setări > TVA
Dacă nu vezi „TVA”, activează opțiunea:
WooCommerce > Setări > General > Activează taxele
2. Mergi în tabul „Rate de taxă standard”
3. Modifică valoarea:
Dacă ai România setată:
Găsește rândul cu codul „RO” și la „Rată TVA” schimbă din
19în21Salvează modificările
🔥 Acum toate produsele care folosesc această rată vor avea automat aplicat TVA 21% (inclusiv în checkout și facturi)
✅ Partea 2: Creșterea prețurilor cu 2% automat
1. Adaugă codul magic în fișierul
functions.phpsau într-un plugin personalizatCodul complet îl ai aici (inserat mai jos), include:
<?php /*──────── Meniu sub WooCommerce ────────*/ add_action( 'admin_menu', function () { add_submenu_page( 'woocommerce', 'Ajustează Prețuri', 'Ajustează Prețuri', 'manage_woocommerce', 'ajusteaza-preturi', 'micadan_page_price_adjust', 56 ); }); /*──────── CSS frumos ────────*/ add_action( 'admin_enqueue_scripts', function ( $hook ) { if ( $hook === 'woocommerce_page_ajusteaza-preturi' ) { wp_add_inline_style( 'wp-admin', ' .micadan-wrap{max-width:740px;margin-top:30px;background:#fff;border-radius:16px;padding:40px 50px;box-shadow:0 12px 30px rgba(0,0,0,.06);font-family:sans-serif} .micadan-wrap h1{font-size:28px;margin-bottom:20px;font-weight:700;display:flex;align-items:center;gap:10px;color:#111} .micadan-intro{background:#f1f1f1;border-left:5px solid #7f54b3;padding:20px;border-radius:8px;margin-bottom:30px} .micadan-intro p{margin:0;font-size:15px;line-height:1.6} .micadan-wrap label{font-weight:600;margin-bottom:6px;display:block} .micadan-wrap input,.micadan-wrap select{padding:10px;border-radius:6px;border:1px solid #ccd0d4;font-size:15px} .micadan-wrap .row{margin-bottom:20px} .micadan-btn{padding:12px 26px;border:none;border-radius:6px;font-weight:700;font-size:16px;color:#fff;cursor:pointer;transition:.2s} .btn-primary{background:#7f54b3}.btn-primary:hover{background:#68459c} .btn-danger{background:#d63638}.btn-danger:hover{background:#b32d2f} ' ); } }); /*──────── Pagina propriu-zisă ────────*/ function micadan_page_price_adjust() { // Procesare formular if ( isset($_POST['micadan_action']) && check_admin_referer('micadan_price_nonce') ) { $action = sanitize_text_field( $_POST['micadan_action'] ); $percent = isset($_POST['procent']) ? floatval($_POST['procent']) : 0; $args = [ 'limit' => -1, 'status' => ['publish','private','draft'], 'type' => ['simple','variable'] ]; $products = wc_get_products( $args ); if ( $action === 'reset' ) { foreach ( $products as $p ) restore_price( $p ); echo '<div class="notice notice-warning is-dismissible"><p><span class="dashicons dashicons-update"></span> Prețurile au fost resetate la valorile inițiale.</p></div>'; } elseif ( $percent > 0 && in_array( $action, ['crestere','scadere'], true ) ) { $factor = ( $action === 'crestere' ) ? ( 1 + $percent/100 ) : ( 1 - $percent/100 ); foreach ( $products as $p ) { backup_price_if_needed( $p ); update_price_recursive( $p, $factor ); } printf('<div class="notice notice-success is-dismissible"><p><span class="dashicons dashicons-yes"></span> Prețurile au fost %s cu <strong>%s%%</strong>.</p></div>', ( $action === 'crestere' ? 'majorate' : 'reduse' ), esc_html($percent)); } else { echo '<div class="notice notice-error"><p>Introdu un procent > 0 și alege o acțiune validă.</p></div>'; } } // UI ?> <div class="wrap"><div class="micadan-wrap"> <h1><span class="dashicons dashicons-cart"></span> Ajustează Prețurile la Produse</h1> <div class="micadan-intro"> <p><strong>Ce face acest panou?</strong></p> <p>✔ Poți <strong>crește</strong> sau <strong>scădea</strong> toate prețurile produselor WooCommerce cu un procent ales de tine.<br> ✔ La prima modificare, sistemul salvează automat prețurile originale (backup).<br> ✔ Apăsând <strong>RESET</strong>, revii la prețurile inițiale.<br> ✔ Funcționează cu produse simple și variabile.</p> </div> <form method="post"> <?php wp_nonce_field('micadan_price_nonce'); ?> <div class="row"> <label for="procent">Procent (%):</label> <input type="number" name="procent" step="0.01" min="0.01" style="width:120px"> </div> <div class="row"> <label for="actiune">Alege acțiunea:</label> <select name="micadan_action" required style="width:180px"> <option value="">— Selectează —</option> <option value="crestere">Crește prețurile</option> <option value="scadere">Scade prețurile</option> <option value="reset">RESET la prețul inițial</option> </select> </div> <button type="submit" class="micadan-btn btn-primary">Execută</button> <button type="submit" name="micadan_action" value="reset" class="micadan-btn btn-danger" style="margin-left:12px">Reset</button> </form> </div></div> <?php } /*──────── Helpers ────────*/ function backup_price_if_needed( $product ) { if ( ! metadata_exists( 'post', $product->get_id(), '_price_backup' ) ) { update_post_meta( $product->get_id(), '_price_backup', [ 'regular' => $product->get_regular_price(), 'sale' => $product->get_sale_price() ] ); } if ( $product->is_type('variable') ) { foreach ( $product->get_children() as $vid ) { $var = wc_get_product( $vid ); if ( ! metadata_exists( 'post', $vid, '_price_backup' ) ) { update_post_meta( $vid, '_price_backup', [ 'regular' => $var->get_regular_price(), 'sale' => $var->get_sale_price() ] ); } } } } function update_price_recursive( $product, $factor ) { if ( $product->is_type('variable') ) { foreach ( $product->get_children() as $vid ) { $v = wc_get_product( $vid ); if ( $v->get_regular_price() ) $v->set_regular_price( round( $v->get_regular_price() * $factor, 2 ) ); if ( $v->get_sale_price() ) $v->set_sale_price( round( $v->get_sale_price() * $factor, 2 ) ); $v->save(); } } else { if ( $product->get_regular_price() ) $product->set_regular_price( round( $product->get_regular_price() * $factor, 2 ) ); if ( $product->get_sale_price() ) $product->set_sale_price( round( $product->get_sale_price() * $factor, 2 ) ); $product->save(); } } function restore_price( $product ) { $backup = get_post_meta( $product->get_id(), '_price_backup', true ); if ( $backup ) { $product->set_regular_price( $backup['regular'] ); $product->set_sale_price( $backup['sale'] ); $product->save(); delete_post_meta( $product->get_id(), '_price_backup' ); } if ( $product->is_type('variable') ) { foreach ( $product->get_children() as $vid ) { $b = get_post_meta( $vid, '_price_backup', true ); if ( $b ) { $v = wc_get_product( $vid ); $v->set_regular_price( $b['regular'] ); $v->set_sale_price( $b['sale'] ); $v->save(); delete_post_meta( $vid, '_price_backup' ); } } } }
Buton nou în meniu WooCommerce
Interfață frumoasă
Creștere, scădere și RESET
Salvează automat prețurile originale
📌 Exemplu de folosire:
Vrei să compensezi diferența de TVA? Scrii
2și apeși „Crește prețurile”Ai făcut reducere? Scrii
-5și apeși „Scade prețurile”Vrei să revii la ce era? Apeși pe RESET
