<?php
add_filter('woocommerce_dropdown_variation_attribute_options_args','woo_select_default_option',10,1);
function woo_select_default_option( $args)
{
if(count($args['options']) > 0) //Ensure product variation isn't empty
$args['selected'] = $args['options'][0];
return $args;
}
add_action( 'woocommerce_variable_add_to_cart', 'bbloomer_update_price_with_variation_price' );
function bbloomer_update_price_with_variation_price() {
if(is_product()){
global $product;
$price = $product->get_price_html();
wc_enqueue_js( "
$(document).on('found_variation', 'form.cart', function( event, variation ) {
if(variation.price_html) $('.fb-prod-content-one p.price').html(variation.price_html);
$('.woocommerce-variation-price').hide();
});
$(document).on('hide_variation', 'form.cart', function( event, variation ) {
$('.fb-prod-content-one p.price').html('" . $price . "');
});
" );
}
}
add_filter('woocommerce_available_variation', function($available_variations, \WC_Product_Variable $variable, \WC_Product_Variation $variation) {
if (empty($available_variations['price_html'])) {
$available_variations['price_html'] = '<span class="price">' . $variation->get_price_html() . '</span>';
}
return $available_variations;
}, 10, 3);
?><?php
function add_variation_radio_buttons() {
?>
<script type="text/javascript">
document.addEventListener( 'DOMContentLoaded', function() {
var variations_form = document.querySelector( 'form.variations_form' );
var data = variations_form.getAttribute( 'data-product_variations' );
data = JSON.parse( data );
var selects = document.querySelectorAll( 'table.variations select' );
selects.forEach( function( select ) {
var options = select.querySelectorAll( 'option' );
options.forEach( function( option ) {
if( ! option.value ) {
return;
}
var pricing = '';
data.forEach( function( row ) {
if( row.attributes[select.name] == option.value ) {
pricing = row.price_html;
}
} );
var radio = document.createElement( 'input' );
radio.type = 'radio';
radio.name = select.name;
radio.value = option.value;
radio.checked = option.selected;
var label = document.createElement( 'label' );
label.appendChild( document.createTextNode( ' ' + option.text + ' ' ) );
var div = document.createElement( 'div' );
div.classList.add('fb-woo-single-btn-variation');
div.appendChild( radio );
div.appendChild( label );
// Check if variation has stock
var variationData = data.find(function(row) {
return row.attributes[select.name] == option.value;
});
// Check if product has only one attribute
var hasSingleAttribute = Object.keys(variationData.attributes).length === 1;
if (variationData && !variationData.is_in_stock && hasSingleAttribute) {
div.classList.add('disable');
}
select.closest( 'td' ).appendChild( div );
radio.addEventListener( 'click', function( event ) {
select.value = radio.value;
jQuery( select ).trigger( 'change' );
} );
} );
select.style.display = 'none';
} );
} );
</script>
<?php
}
add_action( 'woocommerce_variable_add_to_cart', 'add_variation_radio_buttons' );
# SOURCE: https://codedcommerce.com/woo/change-variation-drop-downs-to-radio-buttons/
/*
add_action( 'woocommerce_variable_add_to_cart', function() {
add_action( 'wp_print_footer_scripts', function() {
?>
<script type="text/javascript">
// DOM Loaded
document.addEventListener( 'DOMContentLoaded', function() {
// Get Variation Pricing Data
var variations_form = document.querySelector( 'form.variations_form' );
var data = variations_form.getAttribute( 'data-product_variations' );
data = JSON.parse( data );
// Loop Drop Downs
document.querySelectorAll( 'table.variations select' )
.forEach( function( select ) {
// Loop Drop Down Options
select.querySelectorAll( 'option' )
.forEach( function( option ) {
// Skip Empty
if( ! option.value ) {
return;
}
// Get Pricing For This Option
var pricing = '';
data.forEach( function( row ) {
if( row.attributes[select.name] == option.value ) {
pricing = row.price_html;
}
} );
// Create Radio
var radio = document.createElement( 'input' );
radio.type = 'radio';
radio.name = select.name;
radio.value = option.value;
radio.checked = option.selected;
var label = document.createElement( 'label' );
label.appendChild( document.createTextNode( ' ' + option.text + ' ' ) );
var div = document.createElement( 'div' );
div.classList.add('fb-woo-single-btn-variation');
div.appendChild( radio );
div.appendChild( label );
// Insert Radio
select.closest( 'td' ).appendChild( div );
// Handle Clicking
radio.addEventListener( 'click', function( event ) {
select.value = radio.value;
jQuery( select ).trigger( 'change' );
} );
} ); // End Drop Down Options Loop
// Hide Drop Down
select.style.display = 'none';
} ); // End Drop Downs Loop
} ); // End Document Loaded
</script>
<?php
} );
} );
*/
?>Uși glisante de separație din sticlă sablată, ideale pentru delimitarea elegantă a spațiilor din locuință. Oferă intimitate, păstrând totodată luminozitatea și fluiditatea designului interior.
📞 Sună acum și comandă sau dă click pe Cere oferta și completează formularul! Personalizează-ți spațiul cu Uși glisante de separație – soluția modernă și practică.
Uși glisante de separație – soluția modernă pentru spații multifuncționale
Dacă îți dorești un spațiu aerisit, versatil și modern, ușile glisante de separație sunt alegerea perfectă. Realizate din sticlă sablată securizată, acestea oferă un echilibru ideal între intimitate vizuală și transparență luminoasă, fiind perfecte pentru a separa zona de living de bucătărie sau dining, fără a pierde senzația de spațiu deschis.
Sistemul de glisare este silențios, robust și ușor de manevrat, fiind prevăzut cu șine superioare și inferioare și cuprinde rulmenți și perii antipraf. Ușile pot fi fabricate la comandă în funcție de dimensiunile spațiului tău, cu profile minimaliste din aluminiu sau inox și mânere moderne, discrete.
Designul lor contemporan și finisajul sablat le transformă într-un element de design în sine, contribuind la eleganța și funcționalitatea locuinței. Fie că ai nevoie de o delimitare temporară sau permanentă între două zone, ușile glisante de separație sunt o soluție practică, stilată și durabilă.
📞 Sună acum și comandă sau dă click pe Cere oferta și completează formularul! Personalizează-ți spațiul cu Uși glisante de separație – soluția modernă și practică.
Reviews
There are no reviews yet.