92 lines
2.1 KiB
JavaScript
92 lines
2.1 KiB
JavaScript
/* global wc_ppec_context */
|
|
;(function( $, window, document ) {
|
|
'use strict';
|
|
|
|
var button_enabled = true;
|
|
|
|
var toggle_button_availability = function( available ) {
|
|
if ( available ) {
|
|
button_enabled = true;
|
|
$( '#woo_pp_ec_button_product' ).css( {
|
|
'cursor': '',
|
|
'-webkit-filter': '', // Safari 6.0 - 9.0
|
|
'filter': '',
|
|
} );
|
|
} else {
|
|
button_enabled = false;
|
|
$( '#woo_pp_ec_button_product' ).css( {
|
|
'cursor': 'not-allowed',
|
|
'-webkit-filter': 'grayscale( 100% )', // Safari 6.0 - 9.0
|
|
'filter': 'grayscale( 100% )',
|
|
} );
|
|
}
|
|
}
|
|
|
|
var get_attributes = function() {
|
|
var select = $( '.variations_form' ).find( '.variations select' ),
|
|
data = {},
|
|
count = 0,
|
|
chosen = 0;
|
|
|
|
select.each( function() {
|
|
var attribute_name = $( this ).data( 'attribute_name' ) || $( this ).attr( 'name' );
|
|
var value = $( this ).val() || '';
|
|
|
|
if ( value.length > 0 ) {
|
|
chosen++;
|
|
}
|
|
|
|
count++;
|
|
data[ attribute_name ] = value;
|
|
} );
|
|
|
|
return {
|
|
'count' : count,
|
|
'chosenCount': chosen,
|
|
'data' : data
|
|
};
|
|
};
|
|
|
|
// It's a variations form, button availability should depend on its events
|
|
if ( $( '.variations_form' ).length ) {
|
|
toggle_button_availability( false );
|
|
|
|
$( '.variations_form' )
|
|
.on( 'show_variation', function( event, form, purchasable ) {
|
|
toggle_button_availability( purchasable );
|
|
} )
|
|
.on( 'hide_variation', function() {
|
|
toggle_button_availability( false );
|
|
} );
|
|
}
|
|
|
|
$( '#woo_pp_ec_button_product' ).click( function( event ) {
|
|
event.preventDefault();
|
|
|
|
if ( ! button_enabled ) {
|
|
return;
|
|
}
|
|
|
|
toggle_button_availability( false );
|
|
|
|
var data = {
|
|
'nonce': wc_ppec_context.generate_cart_nonce,
|
|
'qty': $( '.quantity .qty' ).val(),
|
|
'attributes': $( '.variations_form' ).length ? get_attributes().data : [],
|
|
'add-to-cart': $( '[name=add-to-cart]' ).val(),
|
|
};
|
|
|
|
var href = $(this).attr( 'href' );
|
|
|
|
$.ajax( {
|
|
type: 'POST',
|
|
data: data,
|
|
url: wc_ppec_context.ajaxurl,
|
|
success: function( response ) {
|
|
window.location.href = href;
|
|
}
|
|
} );
|
|
} );
|
|
|
|
})( jQuery, window, document );
|