File "bsale_front.js"
Full path: /home/dora/public_html/wp-content/plugins/woocommerce-bsalev2/js/bsale_front.js
File size: 5.62 KB
MIME-type: --
Charset: utf-8
var my_jquery = jQuery.noConflict();
my_jquery(document).ready(function ()
{
try
{
console.log("front end ok");
//oculto stock variaciones
bsale_init_variation_stock();
//handler
bsale_handler();
} catch (e)
{
console.log("js front end, error: ", e);
}
});
/**
* muestra/oculta stock de variaciones hasta que se seleccione una de ellas
* @returns {undefined}
*/
function bsale_init_variation_stock($display = 'none')
{
my_jquery(".bsale_variacion", ".bsale_stock_variaciones").css("display", $display);
}
/**
* clic en variacion, muestra stock de esa variacion
* @returns {undefined}
*/
function bsale_handler()
{
my_jquery(".reset_variations", "form.variations_form.cart").on("click", function ()
{
//oculto todos los stock de variaciones
bsale_init_variation_stock('none');
});
my_jquery("a.filter-item", "form.variations_form.cart").on("click", function ()
{
//velues de los ttr selected, ej: rojo, xl
var name = my_jquery(this).attr("data-value");
//cantidad de attrs selected para esta variacion
var count_attrs = 1;
//cantidad de attrs que se deben seleccionar para esta variacion
var numItems = 1;
//val contiene: si variacion es color, contendrá: rojo, azul, etc
//se han selected todos los attrs de esta variación?
if (count_attrs < numItems)
{
name = ".noselected";
console.log("faltan attrs por select, selected: " + count_attrs + "; required: " + numItems);
}
//var name = my_jquery("input[type=radio]", this).val();
//nmae contiene los values de las variacion selected. puede ser uno o varios values
var class_display = ".bsale_variacion" + '.' + name;
console.log("attrs de variacion selected: " + name + ". Class " + class_display);
var stock = my_jquery(class_display, ".bsale_stock_variaciones").attr("title");
//oculto todos los stock de variaciones
bsale_init_variation_stock('none');
//muestro stock de variacion selected
console.log("click en var=" + name + ", muestro div '" + class_display + "' con stock=" + stock);
my_jquery(class_display, ".bsale_stock_variaciones").css("display", 'block');
bsale_display_stock_product_page(stock);
});
my_jquery("label.sw-radio-variation", "form.variations_form.cart").on("click", function ()
{
//velues de los ttr selected, ej: rojo, xl
var name = "";
//cantidad de attrs selected para esta variacion
var count_attrs = 0;
//cantidad de attrs que se deben seleccionar para esta variacion
var numItems = my_jquery('.sw-custom-variation').length;
//val contiene: si variacion es color, contendrá: rojo, azul, etc
//recorro todos los labels selected. Cada label selected es un attr de la variación, ej: rojo, xl
my_jquery("label.sw-radio-variation.selected").each(function (index)
{
var aux = my_jquery("input[type=radio]", this).val();
if (aux === "" || aux == null)
{
aux = "noselected";
}
console.log("attr " + aux);
name += "." + aux;
count_attrs++;
});
//se han selected todos los attrs de esta variación?
if (count_attrs < numItems)
{
name = ".noselected";
console.log("faltan attrs por select, selected: " + count_attrs + "; required: " + numItems);
}
//var name = my_jquery("input[type=radio]", this).val();
//nmae contiene los values de las variacion selected. puede ser uno o varios values
var class_display = ".bsale_variacion" + name;
console.log("attrs de variacion selected");
var stock = my_jquery(class_display, ".bsale_stock_variaciones").attr("title");
//oculto todos los stock de variaciones
bsale_init_variation_stock('none');
//muestro stock de variacion selected
console.log("click en var=" + name + ", muestro div '" + class_display + "' con stock=" + stock);
my_jquery(class_display, ".bsale_stock_variaciones").css("display", 'block');
bsale_display_stock_product_page(stock);
});
}
/**
* muestra stock de variacion, una vez selected la variacion
* espera hasta que se cargue el html de la variacion
* @param {type} $stock
* @returns {undefined}
*/
function bsale_display_stock_product_page($stock)
{
my_jquery(".variacion_stock_app").remove();
var elem = my_jquery("span.variable-price");
if (elem == null || elem.length <= 0)
{
console.log("wait...");
setTimeout(function ()
{
console.log("end wait");
//ahora, voy a la funcion
bsale_display_html_stock($stock);
}, 3000);
} else
{
bsale_display_html_stock($stock);
}
}
function bsale_display_html_stock($stock)
{
my_jquery(".variacion_stock_app").remove();
var elem = my_jquery("span.variable-price");
elem.after('<span class="price"><span class="variacion_stock_app product_stock">Internet: <strong class="stock_q">' + $stock + '</strong></span></span>');
my_jquery(".product_stock", elem).css("display", "none");
console.log("antes de set precio");
console.log(elem.html());
return;
my_jquery(".stock_q", elem).html($stock);
console.log("precio html:");
console.log(elem.html());
}