Pentru a respecta legislația privind ambalajele reciclabile și a aplica o taxă de garanție pentru produsele din sticlă, putem implementa o soluție automatizată în WooCommerce. Această metodă permite administratorilor de magazin online să aplice o garanție de 0.50 RON per unitate pentru sticlele marcate ca fiind reciclabile.
1. Adăugarea unui câmp personalizat în pagina de administrare a produselor
Pentru a marca un produs ca fiind „Produs din sticlă”, adăugăm un câmp personalizat în setările generale ale produsului:
add_action('woocommerce_product_options_general_product_data', function() {
woocommerce_wp_checkbox([
'id' => '_is_glass_product',
'label' => 'Produs din sticlă?',
'description' => 'Bifează dacă acest produs conține sticlă și necesitată garanție de 0.50 RON per unitate.'
]);
});
2. Salvarea valorii câmpului personalizat
Pentru a salva opțiunea selectată de administrator în baza de date, adăugăm următorul cod:
add_action('woocommerce_process_product_meta', function($post_id) {
$is_glass = isset($_POST['_is_glass_product']) ? 'yes' : 'no';
update_post_meta($post_id, '_is_glass_product', $is_glass);
});
3. Aplicarea taxei de garanție în coșul de cumpărături
Acest cod verifică dacă produsul este marcat ca „sticlă” și aplică o taxă de 0.50 RON per unitate:
add_action('woocommerce_cart_calculate_fees', function() {
if (is_admin() && !defined('DOING_AJAX')) return;
$glass_fee = 0;
foreach (WC()->cart->get_cart() as $cart_item) {
$product_id = $cart_item['product_id'];
$quantity = $cart_item['quantity'];
$is_glass = get_post_meta($product_id, '_is_glass_product', true);
if ($is_glass === 'yes') {
$glass_fee += 0.50 * $quantity;
}
}
if ($glass_fee > 0) {
WC()->cart->add_fee('Garanție pentru ambalaj din sticlă', $glass_fee);
}
}, 10, 1);
4. Afișarea mesajului de informare pe pagina produsului
Pentru a informa utilizatorii că acest produs include o taxă de garanție, afișăm un mesaj pe pagina produsului:
add_action('woocommerce_single_product_summary', function() {
global $product;
if (get_post_meta($product->get_id(), '_is_glass_product', true) === 'yes') {
echo '<p style="color: red; font-weight: bold;">🔸 Acest produs necesitată garanție pentru ambalaj (0.50 RON per unitate).</p>';
}
}, 25);
Beneficiile acestei implementări:
✅ Automatizează aplicarea garanției pentru produsele din sticlă
✅ Permite administratorilor să decidă individual pentru fiecare produs
✅ Respectă legislația și oferă transparență clienților
Această soluție simplifică procesul de gestionare a produselor reciclabile în WooCommerce și oferă o metodă clară pentru aplicarea taxei de garanție.