/** Fagép product presentation. Stored prices remain gross (27% VAT). */
if (!defined('ABSPATH')) { return; }

function fagep_public_product($product) {
    if (!$product instanceof WC_Product) { return false; }
    return $product->is_type('variation') ? wc_get_product($product->get_parent_id()) : $product;
}
function fagep_public_price_allowed($product) {
    $parent = fagep_public_product($product);
    return $parent && has_term('elviheto', 'product_tag', $parent->get_id());
}
function fagep_gross_price_values($product) {
    if (!fagep_public_price_allowed($product)) { return array(); }
    if ($product->is_type('variable')) {
        $prices = $product->get_variation_prices(false);
        return array_values(array_filter(array_map('floatval', $prices['price'] ?? array()), static fn($v) => $v > 0));
    }
    return $product->get_price() !== '' && (float)$product->get_price() > 0 ? array((float)$product->get_price()) : array();
}
function fagep_dual_price_html($product) {
    $values = fagep_gross_price_values($product);
    if (!$values) { return ''; }
    $min = min($values); $max = max($values);
    $gross = wc_price($min);
    $net = wc_price(round($min / 1.27, wc_get_price_decimals()));
    if ($max > $min) {
        $gross .= '<span class="fg-price-dash">–</span>' . wc_price($max);
        $net .= '<span class="fg-price-dash">–</span>' . wc_price(round($max / 1.27, wc_get_price_decimals()));
    }
    $sale = '';
    if (!$product->is_type('variable') && $product->is_on_sale() && (float)$product->get_regular_price() > $min) {
        $sale = '<span class="fg-previous-price">Korábbi bruttó ár: <del>' . wc_price($product->get_regular_price()) . '</del></span>';
    }
    return '<span class="fg-price-pair"><span class="fg-price-cell fg-net"><span class="fg-price-label">Nettó</span><span class="fg-price-value">' . $net . '</span></span><span class="fg-price-cell fg-gross"><span class="fg-price-label">Bruttó <span class="fg-vat-label">(27% áfa)</span></span><span class="fg-price-value">' . $gross . '</span></span>' . $sale . '</span>';
}
add_filter('woocommerce_get_price_html', function($html, $product) {
    if (is_admin() && !wp_doing_ajax()) { return $html; }
    return fagep_dual_price_html($product);
}, 100, 2);
add_filter('woocommerce_available_variation', function($data, $parent, $variation) {
    $data['price_html'] = fagep_public_price_allowed($parent) ? '<span class="price">' . fagep_dual_price_html($variation) . '</span>' : '';
    $data['fagep_ready_to_take'] = fagep_public_price_allowed($parent) && $variation->is_in_stock() && !$variation->is_on_backorder();
    return $data;
}, 100, 3);
add_filter('woocommerce_structured_data_product', function($markup, $product) {
    if (!fagep_public_price_allowed($product) || (float)$product->get_price() <= 1000) { unset($markup['offers']); }
    // Recheck after removing hidden prices: WooCommerce validates before this filter.
    if (empty($markup['offers']) && empty($markup['review']) && empty($markup['aggregateRating'])) { return array(); }
    return $markup;
}, 100, 2);
add_filter('woocommerce_get_availability', function($availability, $product) {
    if (fagep_public_price_allowed($product) && $product->is_in_stock() && !$product->is_on_backorder()) {
        $availability['availability'] = 'Készleten · Azonnal elvihető';
        $availability['class'] = 'in-stock';
    } else {
        $availability['availability'] = 'Rendelhető · Kérj egyedi ajánlatot';
        $availability['class'] = 'available-on-backorder';
    }
    return $availability;
}, 100, 2);
// The stock badge beside the title is the single visible product stock indicator.
add_filter('woocommerce_get_stock_html', function($html, $product) {
    return is_product() ? '' : $html;
}, 100, 2);
add_shortcode('fagep_product_status', function() {
    if (!is_product()) { return ''; }
    $product = wc_get_product(get_queried_object_id());
    $stock = fagep_public_price_allowed($product) && $product->is_in_stock() && !$product->is_on_backorder();
    $text = $stock ? 'Készleten · Azonnal elvihető' : 'Rendelhető · Kérj egyedi ajánlatot';
    $note = $stock ? 'A kívánt mennyiség és kivitel elérhetőségét az ajánlatkéréskor pontosítjuk.' : 'A pontos árat és az elérhetőséget az ajánlatban adjuk meg.';
    return '<div class="fg-product-status"><span class="fg-status-badge ' . ($stock ? 'fg-status-stock' : 'fg-status-quote') . '">' . esc_html($text) . '</span><p class="fg-status-note">' . esc_html($note) . '</p></div>';
});
function fagep_product_help_link() {
    if (!is_product()) { return; }
    $url = add_query_arg('fagep_product', get_queried_object_id(), home_url('/kapcsolat/')) . '#fagep-kapcsolati-urlap';
    echo '<a class="fg-help-button" href="' . esc_url($url) . '">Segítséget kérek</a>';
}
add_action('woocommerce_after_add_to_cart_button', 'fagep_product_help_link', 30);
// Old ACF price headings remain editable in the templates but no longer disclose independent prices.
add_filter('elementor/widget/render_content', function($content, $widget) {
    $classes = (string)$widget->get_settings('_css_classes');
    if (preg_match('/(?:^|\\s)fg-legacy-(?:price|status)(?:\\s|$)/', $classes)) { return ''; }
    return $content;
}, 100, 2);

// Product context is populated into the existing contact form without changing its saved schema.
add_filter('gform_pre_render_12', function($form) {
    $id = isset($_GET['fagep_product']) ? absint($_GET['fagep_product']) : 0;
    $product = $id ? wc_get_product($id) : false;
    if (!$product || $product->get_status() !== 'publish') { return $form; }
    $context = 'Érdeklődés: ' . $product->get_name() . "\n" . 'Cikkszám: ' . $product->get_sku() . "\n" . get_permalink($id) . "\n\n";
    foreach ($form['fields'] as $field) {
        if ((int)$field->id === 20) { $field->defaultValue = $context; }
    }
    return $form;
});
add_action('wp_enqueue_scripts', function() {
    if (is_product() || is_shop() || is_product_taxonomy() || is_search()) {
        wp_enqueue_style('fagep-product-refresh', content_url('/novamira-sandbox/fagep-product-refresh.css'), array(), '20261013-6');
    }
}, 40);
add_action('wp_enqueue_scripts', function() {
    if (!is_product()) { return; }
    $product = wc_get_product(get_queried_object_id());
    if (!$product || !$product->is_type('variable')) { return; }
    wp_add_inline_script('wc-add-to-cart-variation', '(function($){ var initialStatus=null; $(document).on("found_variation.fagep", "form.variations_form", function(e, v){ var badge=$(".fg-status-badge"); if(initialStatus===null){ initialStatus={text:badge.text(),ready:badge.hasClass("fg-status-stock")}; } $(".fg-product-price").hide(); var ready=!!v.fagep_ready_to_take; badge.toggleClass("fg-status-stock",ready).toggleClass("fg-status-quote",!ready).text(ready?"Készleten · Azonnal elvihető":"Rendelhető · Kérj egyedi ajánlatot"); }).on("reset_data.fagep hide_variation.fagep", "form.variations_form", function(){ $(".fg-product-price").show(); if(initialStatus!==null){ $(".fg-status-badge").toggleClass("fg-status-stock",initialStatus.ready).toggleClass("fg-status-quote",!initialStatus.ready).text(initialStatus.text); } }); })(jQuery);');
}, 50);
/** Fagép product presentation. Stored prices remain gross (27% VAT). */
if (!defined('ABSPATH')) { return; }

function fagep_public_product($product) {
    if (!$product instanceof WC_Product) { return false; }
    return $product->is_type('variation') ? wc_get_product($product->get_parent_id()) : $product;
}
function fagep_public_price_allowed($product) {
    $parent = fagep_public_product($product);
    return $parent && has_term('elviheto', 'product_tag', $parent->get_id());
}
function fagep_gross_price_values($product) {
    if (!fagep_public_price_allowed($product)) { return array(); }
    if ($product->is_type('variable')) {
        $prices = $product->get_variation_prices(false);
        return array_values(array_filter(array_map('floatval', $prices['price'] ?? array()), static fn($v) => $v > 0));
    }
    return $product->get_price() !== '' && (float)$product->get_price() > 0 ? array((float)$product->get_price()) : array();
}
function fagep_dual_price_html($product) {
    $values = fagep_gross_price_values($product);
    if (!$values) { return ''; }
    $min = min($values); $max = max($values);
    $gross = wc_price($min);
    $net = wc_price(round($min / 1.27, wc_get_price_decimals()));
    if ($max > $min) {
        $gross .= '<span class="fg-price-dash">–</span>' . wc_price($max);
        $net .= '<span class="fg-price-dash">–</span>' . wc_price(round($max / 1.27, wc_get_price_decimals()));
    }
    $sale = '';
    if (!$product->is_type('variable') && $product->is_on_sale() && (float)$product->get_regular_price() > $min) {
        $sale = '<span class="fg-previous-price">Korábbi bruttó ár: <del>' . wc_price($product->get_regular_price()) . '</del></span>';
    }
    return '<span class="fg-price-pair"><span class="fg-price-cell fg-net"><span class="fg-price-label">Nettó</span><span class="fg-price-value">' . $net . '</span></span><span class="fg-price-cell fg-gross"><span class="fg-price-label">Bruttó <span class="fg-vat-label">(27% áfa)</span></span><span class="fg-price-value">' . $gross . '</span></span>' . $sale . '</span>';
}
add_filter('woocommerce_get_price_html', function($html, $product) {
    if (is_admin() && !wp_doing_ajax()) { return $html; }
    return fagep_dual_price_html($product);
}, 100, 2);
add_filter('woocommerce_available_variation', function($data, $parent, $variation) {
    $data['price_html'] = fagep_public_price_allowed($parent) ? '<span class="price">' . fagep_dual_price_html($variation) . '</span>' : '';
    $data['fagep_ready_to_take'] = fagep_public_price_allowed($parent) && $variation->is_in_stock() && !$variation->is_on_backorder();
    return $data;
}, 100, 3);
add_filter('woocommerce_structured_data_product', function($markup, $product) {
    if (!fagep_public_price_allowed($product) || (float)$product->get_price() <= 1000) { unset($markup['offers']); }
    // Recheck after removing hidden prices: WooCommerce validates before this filter.
    if (empty($markup['offers']) && empty($markup['review']) && empty($markup['aggregateRating'])) { return array(); }
    return $markup;
}, 100, 2);
add_filter('woocommerce_get_availability', function($availability, $product) {
    if (fagep_public_price_allowed($product) && $product->is_in_stock() && !$product->is_on_backorder()) {
        $availability['availability'] = 'Készleten · Azonnal elvihető';
        $availability['class'] = 'in-stock';
    } else {
        $availability['availability'] = 'Rendelhető · Kérj egyedi ajánlatot';
        $availability['class'] = 'available-on-backorder';
    }
    return $availability;
}, 100, 2);
// The stock badge beside the title is the single visible product stock indicator.
add_filter('woocommerce_get_stock_html', function($html, $product) {
    return is_product() ? '' : $html;
}, 100, 2);
add_shortcode('fagep_product_status', function() {
    if (!is_product()) { return ''; }
    $product = wc_get_product(get_queried_object_id());
    $stock = fagep_public_price_allowed($product) && $product->is_in_stock() && !$product->is_on_backorder();
    $text = $stock ? 'Készleten · Azonnal elvihető' : 'Rendelhető · Kérj egyedi ajánlatot';
    $note = $stock ? 'A kívánt mennyiség és kivitel elérhetőségét az ajánlatkéréskor pontosítjuk.' : 'A pontos árat és az elérhetőséget az ajánlatban adjuk meg.';
    return '<div class="fg-product-status"><span class="fg-status-badge ' . ($stock ? 'fg-status-stock' : 'fg-status-quote') . '">' . esc_html($text) . '</span><p class="fg-status-note">' . esc_html($note) . '</p></div>';
});
function fagep_product_help_link() {
    if (!is_product()) { return; }
    $url = add_query_arg('fagep_product', get_queried_object_id(), home_url('/kapcsolat/')) . '#fagep-kapcsolati-urlap';
    echo '<a class="fg-help-button" href="' . esc_url($url) . '">Segítséget kérek</a>';
}
add_action('woocommerce_after_add_to_cart_button', 'fagep_product_help_link', 30);
// Old ACF price headings remain editable in the templates but no longer disclose independent prices.
add_filter('elementor/widget/render_content', function($content, $widget) {
    $classes = (string)$widget->get_settings('_css_classes');
    if (preg_match('/(?:^|\\s)fg-legacy-(?:price|status)(?:\\s|$)/', $classes)) { return ''; }
    return $content;
}, 100, 2);

// Product context is populated into the existing contact form without changing its saved schema.
add_filter('gform_pre_render_12', function($form) {
    $id = isset($_GET['fagep_product']) ? absint($_GET['fagep_product']) : 0;
    $product = $id ? wc_get_product($id) : false;
    if (!$product || $product->get_status() !== 'publish') { return $form; }
    $context = 'Érdeklődés: ' . $product->get_name() . "\n" . 'Cikkszám: ' . $product->get_sku() . "\n" . get_permalink($id) . "\n\n";
    foreach ($form['fields'] as $field) {
        if ((int)$field->id === 20) { $field->defaultValue = $context; }
    }
    return $form;
});
add_action('wp_enqueue_scripts', function() {
    if (is_product() || is_shop() || is_product_taxonomy() || is_search()) {
        wp_enqueue_style('fagep-product-refresh', content_url('/novamira-sandbox/fagep-product-refresh.css'), array(), '20261013-6');
    }
}, 40);
add_action('wp_enqueue_scripts', function() {
    if (!is_product()) { return; }
    $product = wc_get_product(get_queried_object_id());
    if (!$product || !$product->is_type('variable')) { return; }
    wp_add_inline_script('wc-add-to-cart-variation', '(function($){ var initialStatus=null; $(document).on("found_variation.fagep", "form.variations_form", function(e, v){ var badge=$(".fg-status-badge"); if(initialStatus===null){ initialStatus={text:badge.text(),ready:badge.hasClass("fg-status-stock")}; } $(".fg-product-price").hide(); var ready=!!v.fagep_ready_to_take; badge.toggleClass("fg-status-stock",ready).toggleClass("fg-status-quote",!ready).text(ready?"Készleten · Azonnal elvihető":"Rendelhető · Kérj egyedi ajánlatot"); }).on("reset_data.fagep hide_variation.fagep", "form.variations_form", function(){ $(".fg-product-price").show(); if(initialStatus!==null){ $(".fg-status-badge").toggleClass("fg-status-stock",initialStatus.ready).toggleClass("fg-status-quote",!initialStatus.ready).text(initialStatus.text); } }); })(jQuery);');
}, 50);
<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="//fagep.hu/wp-content/plugins/wordpress-seo/css/main-sitemap.xsl"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
	<sitemap>
		<loc>https://fagep.hu/post-sitemap.xml</loc>
		<lastmod>2026-10-22T07:18:41+00:00</lastmod>
	</sitemap>
	<sitemap>
		<loc>https://fagep.hu/page-sitemap.xml</loc>
		<lastmod>2026-10-22T07:18:41+00:00</lastmod>
	</sitemap>
	<sitemap>
		<loc>https://fagep.hu/attachment-sitemap.xml</loc>
		<lastmod>2026-10-15T07:34:16+00:00</lastmod>
	</sitemap>
	<sitemap>
		<loc>https://fagep.hu/product-sitemap.xml</loc>
		<lastmod>2026-10-22T07:26:44+00:00</lastmod>
	</sitemap>
	<sitemap>
		<loc>https://fagep.hu/category-sitemap.xml</loc>
		<lastmod>2026-10-22T07:18:41+00:00</lastmod>
	</sitemap>
	<sitemap>
		<loc>https://fagep.hu/post_tag-sitemap.xml</loc>
		<lastmod>2026-10-22T07:18:41+00:00</lastmod>
	</sitemap>
	<sitemap>
		<loc>https://fagep.hu/product_brand-sitemap.xml</loc>
		<lastmod>2026-07-09T08:39:50+00:00</lastmod>
	</sitemap>
	<sitemap>
		<loc>https://fagep.hu/product_cat-sitemap.xml</loc>
		<lastmod>2026-10-22T07:26:44+00:00</lastmod>
	</sitemap>
	<sitemap>
		<loc>https://fagep.hu/pa_meret-sitemap.xml</loc>
		<lastmod>2026-10-22T07:26:44+00:00</lastmod>
	</sitemap>
	<sitemap>
		<loc>https://fagep.hu/pa_tipus-sitemap.xml</loc>
		<lastmod>2026-05-12T14:47:51+00:00</lastmod>
	</sitemap>
	<sitemap>
		<loc>https://fagep.hu/author-sitemap.xml</loc>
		<lastmod>2022-07-13T10:44:01+00:00</lastmod>
	</sitemap>
</sitemapindex>
<!-- XML Sitemap generated by Yoast SEO -->