<?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( '.fb-woo-single__btn form.variations_form' );
        var data = variations_form.getAttribute( 'data-product_variations' );
        data = JSON.parse( data );

        var selects = document.querySelectorAll( '.fb-woo-single__btn 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' );

?>

Betexa Začínáme vystřihovat Vlaky

139 

Skladem u dodavatele

Kvalitní Betexa Začínáme vystřihovat Vlaky za 149 Kč.

Obtížnost
Téma
Mechanismus

Recenze

Zatím zde nejsou žádné recenze.

Pouze přihlášení uživatelé, kteří zakoupili tento produkt, mohou přidat hodnocení.

Podobné produkty

Betexa Začínáme vystřihovat Vlaky

139 

139 

Skladem u dodavatele