/** * Shelber – Correct 9% Price Uplift (Simple + Variable Products) * Fixes variation price range AND selected variation price */ /* === 1. Uplift variation price arrays (fixes range) === */ add_filter('woocommerce_variation_prices_price', 'shelber_uplift_variation_prices', 20, 3); add_filter('woocommerce_variation_prices_regular_price', 'shelber_uplift_variation_prices', 20, 3); add_filter('woocommerce_variation_prices_sale_price', 'shelber_uplift_variation_prices', 20, 3); function shelber_uplift_variation_prices($price, $variation, $product) { if (!is_numeric($price)) return $price; return ceil($price * 1.09); } /* === 2. Uplift selected variation price (when user clicks an option) === */ add_filter('woocommerce_product_variation_get_price', 'shelber_uplift_variation_selected', 20, 2); add_filter('woocommerce_product_variation_get_regular_price', 'shelber_uplift_variation_selected', 20, 2); add_filter('woocommerce_product_variation_get_sale_price', 'shelber_uplift_variation_selected', 20, 2); function shelber_uplift_variation_selected($price, $product) { if (!is_numeric($price)) return $price; return ceil($price * 1.09); } /* === 3. Uplift simple products === */ add_filter('woocommerce_product_get_price', 'shelber_uplift_simple', 20, 2); add_filter('woocommerce_product_get_regular_price', 'shelber_uplift_simple', 20, 2); function shelber_uplift_simple($price, $product) { if ($product->is_type('variable')) return $price; // variations handled above if (!is_numeric($price)) return $price; return ceil($price * 1.09); } Shelber - gr0

gr0