PageSourceSearch

https://gymcastic.com/wp-content/plugins/crowdfunding-for-woocomme…/js/alg-variations-frontend.js?ver=3.1.14

js gymcastic.com collected 2026-10-02 10:35:45 UTC 3,799 bytes, 114 lines download raw bytes

1/**
2 * alg-variations-frontend.
3 *
4 * @version 2.9.1
5 * @todo    [dev] add "clear" button
6 * @todo    [dev] maybe rename `alg_variations` (for compatibility with "Variations Radio Buttons" plugin)
7 * @todo    [dev] check JS coding standards
8 */
9
10/**
11 * maybe_hide_unavailable.
12 *
13 * @version 2.9.1
14 * @since   2.9.1
15 */
16function maybe_hide_unavailable(variation) {
17	if ( ! variation.is_purchasable || ! variation.is_in_stock || ! variation.variation_is_visible ) {
18		jQuery(".single_add_to_cart_button").removeClass("wc-variation-selection-needed").addClass("disabled wc-variation-is-unavailable");
19		jQuery(".woocommerce-variation-add-to-cart").removeClass("woocommerce-variation-add-to-cart-enabled").addClass("woocommerce-variation-add-to-cart-disabled");
20	}
21}
22
23/**
24 * process_variations.
25 *
26 * @version 2.9.1
27 * @since   2.9.1
28 */
29function process_variations(variation_id) {
30	var data_product_variations = jQuery.parseJSON(jQuery("form.variations_form.cart").attr("data-product_variations"));
31	data_product_variations.forEach(function(variation){
32		if(variation_id == variation.variation_id){
33			maybe_hide_unavailable(variation);
34			jQuery("form.variations_form.cart").wc_variations_image_update(variation);
35			jQuery("div.woocommerce-variation-price").html(variation.price_html);
36			jQuery("div.woocommerce-variation-description").html(variation.variation_description);
37			jQuery("div.woocommerce-variation-availability").html(variation.availability_html);
38		}
39	});
40}
41
42/**
43 * hide_all.
44 *
45 * @version 2.9.1
46 * @since   2.9.1
47 */
48function hide_all() {
49	jQuery("div.woocommerce-variation-availability").hide();
50	jQuery("div.woocommerce-variation-price").hide();
51	jQuery("div.woocommerce-variation-description").hide();
52	jQuery(".single_add_to_cart_button").removeClass("wc-variation-is-unavailable").addClass("disabled wc-variation-selection-needed");
53	jQuery(".woocommerce-variation-add-to-cart").removeClass("woocommerce-variation-add-to-cart-enabled").addClass("woocommerce-variation-add-to-cart-disabled");
54}
55
56/**
57 * show_all.
58 *
59 * @version 2.9.1
60 * @since   2.9.1
61 */
62function show_all() {
63	jQuery("div.woocommerce-variation-availability").show();
64	jQuery("div.woocommerce-variation-price").show();
65	jQuery("div.woocommerce-variation-description").show();
66	jQuery(".single_add_to_cart_button").removeClass("disabled wc-variation-selection-needed wc-variation-is-unavailable");
67	jQuery(".woocommerce-variation-add-to-cart").removeClass("woocommerce-variation-add-to-cart-disabled").addClass("woocommerce-variation-add-to-cart-enabled");
68}
69
70/**
71 * fill_values.
72 *
73 * @version 2.9.1
74 * @since   2.9.1
75 */
76function fill_values(variation_id,radio_element) {
77	jQuery("input:hidden[name='variation_id']").val(variation_id);
78	jQuery(radio_element.attributes).each(
79		function(i, attribute){
80			if(attribute.name.match("^attribute_")){
81				jQuery("input:hidden[name='" + attribute.name + "']").val(attribute.value);
82			}
83		}
84	);
85}
86
87/**
88 * document ready.
89 *
90 * @version 2.9.1
91 */
92jQuery(document).ready(function() {
93	// Initial display
94	jQuery("form.variations_form.cart").on('wc_variation_form',function(){
95		if(jQuery("input:radio[name='alg_variations']").is(":checked")){
96			show_all();
97			var checked_radio = jQuery("input:radio[name='alg_variations']:checked");
98			var variation_id = checked_radio.attr("variation_id");
99			fill_values(variation_id, checked_radio[0]);
100			process_variations(variation_id);
101		} else {
102			hide_all();
103		}
104	});
105	// On change
106	jQuery("input:radio[name='alg_variations']").change(
107		function(){
108			show_all();
109			var variation_id = jQuery(this).attr("variation_id");
110			fill_values(variation_id, this);
111			process_variations(variation_id);
112		}
113	);
114});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.