shell bypass 403
(function ($) {
'use strict';
function motiox_quantity() {
var $quantityBoxes = $('.quantity:not(.buttons_added)').find('.qty');
if ($quantityBoxes.length) {
// Add plus and minus boxes for visible quantity inputs
$quantityBoxes.each(function() {
var $box = $(this);
if ($box.prop('type') === 'number') {
$box.parent().addClass('buttons_added').prepend('<button type="button" class="minus"><i class="motiox-icon-angle-down"></i></button>');
$box.addClass('input-text').after('<button type="button" class="plus"><i class="motiox-icon-angle-up"></i></button>');
var $min = parseFloat($box.attr('min'));
if ($min && $min > 0 && parseFloat($box.val()) < $min) {
$box.val($min);
}
}
// Check for hidden input and add the 'hidden' class
if ($box.prop('type') === 'hidden') {
$box.parent().addClass('hidden');
// Add hidden class to quantity_label if it exists
$box.closest('.quantity').siblings('.quantity_label').addClass('hidden');
}
});
$('.plus, .minus').unbind('click');
$('.plus, .minus').on('click', function () {
var $quantityBox = $(this).parent().find('.qty'),
$currentQuantity = parseFloat($quantityBox.val()),
$maxQuantity = parseFloat($quantityBox.attr('max')),
$minQuantity = parseFloat($quantityBox.attr('min')),
$step = $quantityBox.attr('step');
if (!$currentQuantity || '' === $currentQuantity || 'NaN' === $currentQuantity) {
$currentQuantity = 0;
}
if ('' === $maxQuantity || 'NaN' === $maxQuantity) {
$maxQuantity = '';
}
if ('' === $minQuantity || 'NaN' === $minQuantity) {
$minQuantity = 0;
}
if ('any' === $step || '' === $step || undefined === $step || 'NaN' === parseFloat($step)) {
$step = 1;
}
if ($(this).is('.plus')) {
if ($maxQuantity && ($maxQuantity == $currentQuantity || $currentQuantity > $maxQuantity)) {
$quantityBox.val($maxQuantity);
} else {
$quantityBox.val($currentQuantity + parseFloat($step));
}
} else {
if ($minQuantity && ($minQuantity == $currentQuantity || $currentQuantity < $minQuantity)) {
$quantityBox.val($minQuantity);
} else if ($currentQuantity > 0) {
$quantityBox.val($currentQuantity - parseFloat($step));
}
}
$quantityBox.trigger('change');
});
}
}
motiox_quantity();
$(document).on('woosq_loaded qv_loader_stop updated_wc_div motiox-products-loaded', function () {
motiox_quantity();
});
})(jQuery);