first commit

This commit is contained in:
2026-03-05 13:07:40 +01:00
commit 64ba0721ee
25709 changed files with 4691006 additions and 0 deletions

View File

@@ -0,0 +1,359 @@
jQuery(document).ready(function ($) {
var $superFirstInput = $('#woocommerce_przelewy24_p24_paymethods_super_first');
function getBanksList() {
var banksList = [];
$('#woocommerce_przelewy24_p24_paymethods_all option').each(function () {
if (parseInt($(this).val()) > 0) {
banksList.push({id: $(this).val(), name: $(this).text()});
}
});
if (banksList.length == 0) {
banksList.push({id: 25, name: ""});
banksList.push({id: 31, name: ""});
banksList.push({id: 112, name: ""});
banksList.push({id: 20, name: ""});
banksList.push({id: 65, name: ""});
}
return banksList;
}
var getStyleForBank = function(id) {
var $row = $('#p24-hidden-bank-icon-list tr.js-bank-id-' + id);
var css = '';
if ($row.length) {
var url = $row.find('td.js-icon-type-mobile').text();
css = 'style="background-image: url(' + url + ')"';
}
return css;
};
function getSuperBankBox(id, name) {
if (name == undefined) name = '';
var css = getStyleForBank(id);
return '<a id="p24-admin-super-bank-' + id + '" class="bank-box" data-super-id="' + id + '"><div class="bank-logo" ' + css + '></div><div class="bank-name">' + name + '</div></a>';
}
function getBankBox(id, name) {
if (name == undefined) name = '';
var css = getStyleForBank(id);
return '<a class="bank-box" data-id="' + id + '"><div class="bank-logo" ' + css + '></div><div class="bank-name">' + name + '</div></a>';
}
function toggleSomething(toggle, selector) {
if (toggle) {
$(selector).show();
} else {
$(selector).hide();
}
}
function updateSuperPaymethods() {
var set = [];
$('.paymethod .super-selected a.bank-box').each(function () {
set.push($(this).attr('data-super-id'));
});
$superFirstInput.val(set.join(','));
}
function updatePaymethods() {
$('.bank-box').removeClass('ui-helper-unrotate');
var maxNo = parseInt($('.paymethod .selected').attr('data-max'));
if (maxNo > 0) {
if ($('.paymethod .selected a[data-id]').length > maxNo) {
var i = 0;
$('.paymethod .selected a[data-id]').each(function () {
i++;
if (i > maxNo) {
$('.paymethod .available')
.prepend($(this))
.append($('#clear'));
}
});
}
}
$('#woocommerce_przelewy24_p24_paymethods_first').val('');
$('.paymethod .selected a[data-id]').each(function () {
$('#woocommerce_przelewy24_p24_paymethods_first').val(
$('#woocommerce_przelewy24_p24_paymethods_first').val() +
($('#woocommerce_przelewy24_p24_paymethods_first').val().length ? ',' : '') +
$(this).attr('data-id')
);
});
$('#woocommerce_przelewy24_p24_paymethods_second').val('');
$('.paymethod .available a[data-id]').each(function () {
$('#woocommerce_przelewy24_p24_paymethods_second').val(
$('#woocommerce_przelewy24_p24_paymethods_second').val() +
($('#woocommerce_przelewy24_p24_paymethods_second').val().length ? ',' : '') +
$(this).attr('data-id')
);
});
}
$(document).ready(function () {
$superFirstInput.hide();
$('#woocommerce_przelewy24_p24_paymethods_first').hide();
$('#woocommerce_przelewy24_p24_paymethods_second').closest('tr').hide();
$('#woocommerce_przelewy24_p24_paymethods_all').closest('tr').hide();
if ($('#woocommerce_przelewy24_p24_paymethods_all option[value=266]').length) {
$('#woocommerce_przelewy24_p24_add_to_alternative_method').closest('tr').show();
$('#woocommerce_przelewy24_p24_custom_promote_p24').closest('tr').show();
} else {
$('#woocommerce_przelewy24_p24_add_to_alternative_method').closest('tr').hide();
$('#woocommerce_przelewy24_p24_custom_promote_p24').closest('tr').hide();
}
$superFirstInput.closest('td').append(
'<div class="paymethod" id="p24-admin-config-methods-checkout">' +
'<div style="margin: 0.5em 0">' + p24_payment_script_vars.php_msg3 + '</div>' +
'<div class="sortable super-selected" style="width: 730px; border: 5px dashed lightgray; height: 80px; padding: 0.5em; overflow: hidden;"></div>' +
'<div style="clear:both"></div>' +
'<div style="margin: 0.5em 0">' + p24_payment_script_vars.php_msg4 + '</div>' +
'<div class="sortable super-available"></div>' +
'</div>' +
''
);
var $superSelected = $('.paymethod .super-selected');
var $superAvailable = $('.paymethod .super-available');
$('#woocommerce_przelewy24_p24_paymethods_first').closest('td').append(
'<div class="paymethod" id="p24-admin-config-methods-confirmation">' +
'<div style="margin: 0.5em 0">' + p24_payment_script_vars.php_msg1 + '</div>' +
'<div class="sortable selected" data-max="5" style="width: 730px; border: 5px dashed lightgray; height: 80px; padding: 0.5em; overflow: hidden;"></div>' +
'<div style="clear:both"></div>' +
'<div style="margin: 0.5em 0">' + p24_payment_script_vars.php_msg2 + '</div>' +
'<div class="sortable available"></div>' +
'</div>' +
''
);
$('#woocommerce_przelewy24_p24_show_methods_checkout').change(function () {
var showed = $(this).is(':checked');
toggleSomething(showed, $('#p24-admin-config-methods-checkout').closest('tr'));
}).trigger('change');
$('#woocommerce_przelewy24_p24_show_methods_confirmation').change(function () {
var showed = $(this).is(':checked');
toggleSomething(showed, $('#p24-admin-config-methods-confirmation').closest('tr'));
toggleSomething(showed, $('#woocommerce_przelewy24_p24_graphics').closest('tr'));
toggleSomething(showed, $('#woocommerce_przelewy24_p24_acceptinshop').closest('tr'));
}).trigger('change');
$.each(getBanksList(), function () {
$superAvailable.append(getSuperBankBox(this.id, this.name));
$('.sortable.available').append(getBankBox(this.id, this.name));
});
$superAvailable.append('<div style="clear:both" id="clear"></div>');
$('.sortable.available').append('<div style="clear:both" id="clear"></div>');
$superFirstInput.val().split(',').forEach(function (val) {
$('#p24-admin-super-bank-' + val).appendTo($superSelected);
});
if ($('#woocommerce_przelewy24_p24_paymethods_first').val().length > 0) {
$.each($('#woocommerce_przelewy24_p24_paymethods_first').val().split(','), function (i, v) {
$('.bank-box[data-id=' + v + ']').appendTo('.paymethod .selected');
});
}
if ($('#woocommerce_przelewy24_p24_paymethods_second').val().length > 0) {
$.each($('#woocommerce_przelewy24_p24_paymethods_second').val().split(',').reverse(), function (i, v) {
$('.bank-box[data-id=' + v + ']').prependTo('.paymethod .available');
});
}
updateSuperPaymethods();
updatePaymethods();
var selectorForSuperFirst = $('.paymethod .super-selected, .paymethod .super-available');
$(selectorForSuperFirst).sortable({
connectWith: selectorForSuperFirst,
placeholder: "bank-box bank-placeholder",
stop: function () {
updateSuperPaymethods();
updateIfP24NOW();
},
revert: true,
start: function (e, ui) {
window.setTimeout(function () {
$('.bank-box.ui-sortable-helper').on('mouseup', function () {
$(this).addClass('ui-helper-unrotate');
});
}, 100);
},
}).disableSelection();
$(".sortable.selected,.sortable.available").sortable({
connectWith: ".sortable.selected,.sortable.available",
placeholder: "bank-box bank-placeholder",
stop: function () {
updatePaymethods();
},
revert: true,
start: function (e, ui) {
window.setTimeout(function () {
$('.bank-box.ui-sortable-helper').on('mouseup', function () {
$(this).addClass('ui-helper-unrotate');
});
}, 100);
},
}).disableSelection();
if ($('#p24_no_api_key_provided').length) {
$('#woocommerce_przelewy24_p24_oneclick,#woocommerce_przelewy24_p24_payinshop,#woocommerce_przelewy24_p24_acceptinshop,#woocommerce_przelewy24_p24_paymethods,#woocommerce_przelewy24_p24_graphics,#woocommerce_przelewy24_p24_paymethods_first,#woocommerce_przelewy24_p24_paymethods_second').closest('tr').hide();
}
});
});
(function( $ ) {
/* Activate automatic admin change currency selector. */
$( function () {
$( '.js_currency_admin_selector' ).on( 'change', function () {
var val, data, nonce;
val = $( this ).val();
nonce = $( '#p24_nonce' ).val();
if ( ! nonce ) {
/* Fallback for situations the id cannot be set. */
nonce = $( '.js-p24-alt-nonce' ).val();
}
data = {
action: 'p24_change_currency',
p24_action_type_field: 'change_currency',
p24_nonce: nonce,
p24_currency: val
};
$.post( ajaxurl, data, function () {
$('form').each(function (idx, form) {
form.reset();
});
location.reload() ;
});
});
});
})( jQuery );
(function( $ ) {
$( function () {
var $cb = $('#woocommerce_przelewy24_p24_use_special_status');
var $sPending = $('#woocommerce_przelewy24_p24_custom_pending_status');
var $o1stPenging = $sPending.find('option').first();
var $sProcessing = $('#woocommerce_przelewy24_p24_custom_processing_status');
var $o1stProcessing = $sProcessing.find('option').first();
var labelProcessingEnOrg = 'Processing';
var labelProcessingEnP24 = 'Paid by P24';
var labelProcessingPlOrg = 'W trakcie realizacji';
var labelProcessingPlP24 = 'Opłacone przez P24';
var addSuffix = function($opt) {
var existing = $opt.text();
if (labelProcessingEnOrg === existing) {
$opt.text(labelProcessingEnP24);
} else if (labelProcessingPlOrg === existing) {
$opt.text(labelProcessingPlP24);
} else {
$opt.text($opt.text() + ' P24');
}
};
var dropSuffix = function($opt) {
var existing = $opt.text();
console.log(existing);
if (labelProcessingEnP24 === existing) {
$opt.text(labelProcessingEnOrg);
} else if (labelProcessingPlP24 === existing) {
$opt.text(labelProcessingPlOrg);
} else {
var rx = /(.+)\sP24/;
$opt.text(rx.test(existing) ? rx.exec(existing)[1] : existing);
}
};
$cb.on('change', function () {
if ($cb.prop('checked')) {
$sProcessing.prop('disabled', false);
addSuffix($o1stProcessing);
$sPending.prop('disabled', false);
addSuffix($o1stPenging);
} else {
$sProcessing.val('').prop('disabled', true);
dropSuffix($o1stProcessing);
$sPending.val('').prop('disabled', true);
dropSuffix($o1stPenging);
}
});
$cb.trigger('change');
});
})( jQuery );
// --- changes below associated with p24 now
/**
* Update sortable based on checkbox
*/
function togglePromotedP24NOW() {
$p24nowBox = jQuery("#p24-admin-super-bank-266");
$p24nowBox.remove();
$idValuesHolder = jQuery("#woocommerce_przelewy24_p24_paymethods_super_first");
if (jQuery("#woocommerce_przelewy24_p24_add_to_alternative_method").is(':checked')) {
jQuery(".super-selected").append($p24nowBox);
addP24ToPromoted();
} else if(jQuery("#woocommerce_przelewy24_p24_add_to_alternative_method").is(':not(:checked)')){
jQuery(".super-available").append($p24nowBox);
removeP24FromPromoted()
}
jQuery('.paymethod .super-selected, .paymethod .super-available').sortable( "refreshPositions" );
}
/* promote if added to be */
jQuery(document).ready(function () {
jQuery("#woocommerce_przelewy24_p24_add_to_alternative_method").click(togglePromotedP24NOW);
});
// /* promote if added */
jQuery(document).ready(function () {
jQuery("#woocommerce_przelewy24_p24_paymethods_super_first").change(function () {
console.log('woocommerce_przelewy24_p24_paymethods_super_first changed');
if(jQuery('.super-selected').find("#p24-admin-super-bank-266").length > 0){
jQuery("#woocommerce_przelewy24_p24_add_to_alternative_method").prop('checked', true);
}else if(jQuery('.super-selected').find("#p24-admin-super-bank-266").length === 0){
jQuery("#woocommerce_przelewy24_p24_add_to_alternative_method").prop('checked', false);
}
});
});
/**
* Check checkbox based on sortable change
*/
function updateIfP24NOW() {
jQuery("#woocommerce_przelewy24_p24_add_to_alternative_method")
.prop('checked', (jQuery('.super-selected').find("#p24-admin-super-bank-266").length > 0));
}
function addP24ToPromoted(){
jQuery('#woocommerce_przelewy24_p24_paymethods_super_first').val(function () {
let values = jQuery('#woocommerce_przelewy24_p24_paymethods_super_first')
.val()
.split(',');
values.push('266');
return values.join(',');
});
}
function removeP24FromPromoted(){
jQuery('#woocommerce_przelewy24_p24_paymethods_super_first').val(function () {
let values = jQuery('#woocommerce_przelewy24_p24_paymethods_super_first')
.val()
.split(',');
const index = values.indexOf('266');
if (index > -1) {
values.splice(index, 1);
}
return values.join(',');
});
}

View File

@@ -0,0 +1,40 @@
(function( $ ) {
/* Additional code for multipliers form. */
(function () {
var $adderBox, $select, $btn, armRemoveBtn;
$adderBox = $( '.js-currency-adder' );
if ( $adderBox.length ) {
$select = $adderBox.find( 'select' );
$btn = $adderBox.find( 'input' );
armRemoveBtn = function ( $btn ) {
$btn.on( 'click', function () {
$btn.parents( '.js-p24-multiplier-box' ).remove();
});
return $btn;
};
$( '.js-p24-multiplier-box input[type=button]' ).each( function ( idx, elm ) {
armRemoveBtn( $( elm ) );
});
$btn.on( 'click', function () {
var $lastInputBox, name, selectVal, $newInputBox, removeBtn;
/* Use last input as template and insert a new one. */
$lastInputBox = $( '.js-p24-multiplier-box' ).last();
name = $lastInputBox.find( 'input[type=number]' ).attr( 'name' );
selectVal = $select.val();
name = name.replace( /\[[^\]]*\]$/, '[' + selectVal + ']' );
$newInputBox = $lastInputBox.clone();
$newInputBox
.find( 'input[type=number]' )
.attr( 'name', name )
.val( 1 )
.prop( 'disabled', false );
removeBtn = $newInputBox.find( 'input[type=button]' );
removeBtn.css( 'display', 'unset' );
armRemoveBtn( removeBtn ) ;
$newInputBox.find( 'label' ).text( selectVal );
$lastInputBox.after( $newInputBox );
});
}
})();
})( jQuery );

View File

@@ -0,0 +1,479 @@
function onResize() {
if (jQuery(window).width() <= 640) {
jQuery('.payMethodList').addClass('mobile');
} else {
jQuery('.payMethodList').removeClass('mobile');
}
}
onResize();
jQuery(window).resize(function () {
onResize();
});
function setP24method(method) {
method = parseInt(method);
jQuery('input[name=p24_method]').val(method > 0 ? method : "");
}
function choosePaymentMethod() {
var checkedPayment = false;
var setP24channel = function (paymentIdRaw) {
var paymentId = Number(paymentIdRaw);
if (266 === paymentId) {
jQuery('input[name=p24_channel]').val('2048');
} else {
jQuery('input[name=p24_channel]').val('');
}
};
jQuery('.bank-box').click(function () {
jQuery('.bank-box').removeClass('selected').addClass('inactive');
jQuery(this).addClass('selected').removeClass('inactive');
jQuery('.extra-promoted-box').removeClass('selected').addClass('inactive');
if (jQuery(this).parents('.payMethodList').hasClass('checkoutView')) {
var inputs = jQuery(this).parents('.checkoutView').find('input[type="checkbox"]');
jQuery(inputs).removeAttr('checked');
jQuery(inputs).prop('checked', false);
var input = jQuery(this).find('input[type="checkbox"]');
jQuery(input).attr('checked', 'checked');
jQuery(input).prop('checked', true);
checkedPayment = true;
jQuery('#payment_method_przelewy24_payment').trigger('change');
}
setP24method(jQuery(this).attr('data-id'));
setP24channel(jQuery(this).data('id'));
setP24recurringId(jQuery(this).attr('data-cc'));
});
jQuery('.bank-item input').change(function () {
setP24method(jQuery(this).closest('.bank-item').attr('data-id'));
setP24recurringId(jQuery(this).attr('data-cc'));
});
jQuery('#payment_method_przelewy24_payment').trigger('change');
jQuery('input[name=payment_method_id]:checked:first').closest('.input-box.bank-item').each(function () {
setP24method(jQuery(this).attr('data-id'));
});
jQuery(".box-wrapper").click(function () {
const $thisElement = jQuery(this);
if($thisElement.hasClass('selected')){
jQuery('input[name=p24_channel]').val('');
}else{
jQuery('.bank-box').removeClass('selected').addClass('inactive');
jQuery("#p24-now-box").addClass('selected').removeClass('inactive');
jQuery('input[name=p24_channel]').val('2048');
setP24method(jQuery(this).data('id'));
setP24channel(jQuery(this).data('id'));
setP24recurringId('');
}
});
}
jQuery('<style>.moreStuff.translated:before{content:"' + p24_payment_php_vars.payments_msg4js + '"} </style>').appendTo('head');
jQuery('.moreStuff').toggleClass('translated');
var sessionId = false;
var sign = false;
function requestJsAjaxCard() {
var getForm = function () {
var formHtml = '<form id="przelewy24RPCCardForm"><p id="przelewy24RPCCardFormDescription" class="italic"></p>'+
'<p><label for="P24_cardHolder"></label><input name="P24_cardHolder" id="P24_cardHolder"/></p>'+
'<p><label for="P24_cardNumber"></label><input name="P24_cardNumber" id="P24_cardNumber"/></p>'+
'<p><label for="P24_cardCVV"></label><input name="P24_cardCVV" id="P24_cardCVV" size="3" maxlength="4"/></p>'+
'<p><label for="P24_expMonth"></label><input name="P24_expMonth" id="P24_expMonth" size="2" maxlength="2" placeholder="mm"/>'+
'/<input name="P24_expYear" id="P24_expYear" size="2" maxlength="2" placeholder="yy"/></p>'+
'<p><input type="checkbox" id="P24_registerCard" name="P24_registerCard"/>'+
'<label for="P24_registerCard" id="register-text"></label></p><button type="submit" ></button></form>'
var dict = JSON.parse(jQuery('#p24_dictionary').val());
var $formHtml = jQuery(formHtml);
$formHtml.find('label[for=P24_registerCard]').text(dict['registerCardLabel']);
$formHtml.find('label[for=P24_cardHolder]').text(dict['cardHolderLabel']);
$formHtml.find('label[for=P24_cardNumber]').text(dict['cardNumberLabel']);
$formHtml.find('label[for=P24_cardCVV]').text(dict['cvvLabel']);
$formHtml.find('label[for=P24_expMonth]').text(dict['expDateLabel']);
$formHtml.find('#przelewy24RPCCardFormDescription').text(dict['description']);
$formHtml.find('button').text(dict['payButtonCaption']);
return $formHtml;
};
jQuery('#P24FormArea').html("");
var $formContainer = jQuery("<div></div>");
$formContainer
.attr('id', 'P24FormContainer')
.appendTo('#P24FormArea')
.parent().slideDown()
;
$formContainer.append(getForm());
var $form = jQuery('#przelewy24RPCCardForm');
$form.on('submit', function (e) {
e.preventDefault();
if ($form.find('button').attr('disabled')) {
return;
}
$form.find('button').attr('disabled', 'disabled');
jQuery.ajax(jQuery('#p24_ajax_url').val(), {
method: 'POST', type: 'POST',
data: {
action: 'cardPay',
p24sessionId: jQuery('[name=p24_session_id]').val(),
orderId: jQuery('#p24_woo_order_id').val(),
cardNumber: jQuery('#P24_cardNumber').val(),
cvv: jQuery('#P24_cardCVV').val(),
cardMonth: jQuery('#P24_expMonth').val(),
cardYear: jQuery('#P24_expYear').val(),
clientName: jQuery('#P24_cardHolder').val()
},
success: function (resultJson) {
let result = jQuery.parseJSON(resultJson);
if (result.success && result.redirect && result.redirectUrl) {
setTimeout(function () {
window.location.href = result.redirectUrl;
}, 1000);
} else if (result.success) {
setTimeout(function () {
window.location.href = jQuery('[name=p24_url_return]').val();
}, 1000);
} else {
hidePayJsPopup();
}
},
done: function () {
$form.find('button').removeAttr('disabled');
}
});
})
}
function showPayJsPopup() {
$termsAcceptanceCheckbox = jQuery('[name="p24_regulation_accept"]');
if (0 !== $termsAcceptanceCheckbox.length && !jQuery('[name="p24_regulation_accept"]').is(':checked')) {
jQuery('#place_order').click();
return;
}
if (jQuery('#P24FormAreaHolder:visible').length == 0) {
setP24method("");
jQuery('#P24FormAreaHolder').appendTo('body');
jQuery('#proceedPaymentLink').closest('a').fadeOut();
jQuery('#P24FormAreaHolder').fadeIn();
if (typeof P24_Transaction != 'object') {
requestJsAjaxCard();
}
}
}
function hidePayJsPopup() {
jQuery('#P24FormAreaHolder').fadeOut();
jQuery('#proceedPaymentLink:not(:visible)').closest('a').fadeIn();
}
function payInShopSuccess(orderId, oneclickOrderId) {
jQuery.ajax(jQuery('#p24_ajax_url').val(), {
method: 'POST', type: 'POST',
data: {
action: 'rememberOrderId',
sessionId: jQuery('[name=p24_session_id]').val(),
orderId: orderId,
oneclickOrderId: oneclickOrderId,
sign: jQuery('[name=p24_sign]').val()
}
});
window.setTimeout(function () {
window.location = jQuery('[name=p24_url_return]').val();
}, 1000);
}
function setP24recurringId(id,name) {
id = parseInt(id);
if (name == undefined) name = jQuery('[data-cc='+id+'] .bank-name').text().trim() + ' - ' + jQuery('[data-cc='+id+'] .bank-logo span').text().trim();
jQuery('input[name=p24_cc]').val( id > 0 ? id : "" );
if (id > 0) setP24method(0);
}
function p24_processPayment() {
console.log('processPayment');
var ccid = parseInt(jQuery('input[name=p24_cc]').val());
if (isNaN(ccid) || ccid == 0) {
var myform = document.getElementById("przelewy_payment_form");
var fd = new FormData(myform );
jQuery("#przelewy_payment_form :input").prop("disabled", true);
jQuery.ajax({
url: jQuery("#przelewy_payment_form").attr('action'),
data: fd,
cache: false,
processData: false,
contentType: false,
type: 'POST',
success: function(data) {
window.location.replace(data.url);
},
error: function () {
alert('internal error');
}
});
}
// recuring
if (ccid > 0) {
var ra = jQuery('#przelewy_payment_form [name=p24_regulation_accept]').prop('checked') ? '1' : '';
jQuery('#przelewy24FormRecuring [name=p24_regulation_accept]').val(ra);
jQuery('#przelewy24FormRecuring').submit();
}
return false;
}
function removecc(ccid) {
jQuery('form#cardrm input[name=cardrm]').val(ccid).closest('form').submit();
}
// payinshop
function payInShopFailure() {
//wyświetlamy odpowiedź
jQuery('#P24FormArea').html("<span class='info'>" + p24_payment_php_vars.error_msg4js + "</span>"); //'Wystąpił błąd. Spróbuj ponownie lub wybierz inną metodę płatności.'
P24_Transaction = undefined;
window.location = jQuery('[name=p24_url_return]').val();
}
var selector = '#P24_registerCard';
var waitForEl = function(selector, callback) {
if (jQuery(selector).length) {
jQuery('#P24_registerCard').prop('checked', (p24_payment_php_vars.forget_card == 1 ? false : true));
if (!parseInt(p24_payment_php_vars.show_save_card)) {
jQuery(jQuery(selector).parents('p')).hide();
}
jQuery(selector).on('change', function () {
var payload = jQuery(this).prop('checked') ? 0 : 1;
var url = jQuery('#p24-link-to-my-account').data('link');
jQuery.ajax({
method: 'POST',
url: url,
data: {
act: 'cc_forget',
cc_forget: payload
}
});
})
} else {
setTimeout(function() {
waitForEl(selector, callback);
}, 100);
}
};
waitForEl(selector, function() {
});
var tryArmBlikBox = function() {
var $additional_order_data = jQuery('#p24-additional-order-data')
var $termsAcceptanceCheckbox = jQuery('[name="p24_regulation_accept"]');
var url = jQuery('#p24_ajax_url').val();
if (!url) {
url = $additional_order_data.data('ajax-url');
}
var blikModalError = function() {
var $modal = jQuery('#p24-blik-modal');
$modal.removeClass('loading');
$modal.find('.error').show();
};
var executePaymentByBlikCode = function(trnData, blikCode, onError) {
jQuery.ajax({
url: url,
method: 'POST', type: 'POST',
dataType: 'json',
data: {
'action': 'executePaymentByBlikCode',
'token': trnData.token,
'blikCode': blikCode
}
}).success(function (response) {
if (response.success) {
setTimeout(function () {
location = jQuery('#przelewy_payment_form input[name=p24_url_return]').val();
}, 3000 /* Few seconds to accept transaction. */ );
} else {
onError();
}
}).error(onError);
};
var prepareModal = function ( onClose ) {
var $modal = jQuery('#p24-blik-modal');
if (!$modal.length) {
return false;
}
$modal.addClass('loading');
$modalBg = jQuery('#p24-blik-modal-background');
if ( onClose ) {
$modal.find('.close-modal').on('click', function (e) {
e.preventDefault();
onClose();
});
}
$modalBg.show();
return true;
};
var displayModal = function (nextSteep) {
var $modal = jQuery('#p24-blik-modal');
$modal.removeClass('loading');
var $button = $modal.find('button');
$button.on('click', function (e) {
e.preventDefault();
var $codeInput = $modal.find('input[type=text]');
var code = $codeInput.val();
var $acceptedInput = $modal.find('input[type=checkbox]');
if ($acceptedInput.length && !$acceptedInput.prop('checked')) {
$modal.find('.error-terms').show();
} else if (/^\d{6}$/.test(code)) {
$modal.addClass('loading');
nextSteep(code);
} else {
$modal.find('.error-common').show();
}
});
};
var trnRegisterPromise = function () {
var p24_session_id = jQuery('[name=p24_session_id]').val();
var order_id = jQuery('#p24_woo_order_id').val();
if (!order_id) {
order_id = $additional_order_data.data('order-id');
}
return jQuery.ajax({
url: url,
method: 'POST', type: 'POST',
dataType: 'json',
data: {
action: 'trnRegister',
p24_session_id: p24_session_id,
order_id: order_id
}
});
};
var trnRegisterLong = function () {
trnRegisterPromise().fail(payInShopFailure).done(function (data) {
var nextSteep = function (code) {
executePaymentByBlikCode(data, code, blikModalError);
};
displayModal(nextSteep)
});
};
var trnRegisterIfTerms = function() {
if ($termsAcceptanceCheckbox.attr('type') === 'checkbox' && !$termsAcceptanceCheckbox.is(':checked')) {
jQuery('#place_order').click();
return;
}
var hasModal = prepareModal(false);
if (hasModal) {
trnRegisterLong();
}
};
var tryArmBlikBoxConfirmation = function () {
/* Tile mode. */
var $logoBox = jQuery('#p24-bank-grid a.bank-box[data-id=181]');
if ($logoBox.length) {
$logoBox.on('click', function (e) {
e.preventDefault();
trnRegisterIfTerms();
});
}
/* Text mode. */
var $ourRadioInput = jQuery('#przelewy_method_id_181-');
if ($ourRadioInput.length) {
$ourRadioInput.on('change', function (e) {
if (!$ourRadioInput.prop('checked')) {
/* Nothing to do. */
return;
}
trnRegisterIfTerms();
});
}
/* There is a lot of magic in WooCommerce JavaScript. */
var $radioBox = jQuery('#payment_method_przelewy24_extra_181');
if ($radioBox.length) {
$radioBox.prop('checked', false);
jQuery("body").on("change", ".wc_payment_methods input[name='payment_method']", function () {
var $elm = jQuery(this);
if ($elm.prop('checked') && $elm.val() === 'przelewy24_extra_181') {
var hasModal = jQuery('#p24-blik-modal').length;
if (hasModal) {
var $checkoutButton = jQuery('.woocommerce-checkout');
var $terms = jQuery('#terms');
if ($terms.length && !$terms.prop('checked')) {
$checkoutButton.submit();
$elm.prop('checked', false)
} else {
var nextSteep = function (code) {
jQuery('#p24-blik-code-input').val(code);
$checkoutButton.submit();
}
prepareModal(false);
displayModal(nextSteep);
}
}
}
});
}
};
var tryExecuteBlik = function () {
var $input = jQuery('#przelewy_payment_form input[name=p24_provided_blik_code]');
if ($input.length) {
var code = $input.val();
if (code) {
var onError = function () {
var href = jQuery('#przelewy_payment_form a.button.cancel').attr('href');
location = href;
};
var hasModal = prepareModal(onError);
if (hasModal) {
if ($termsAcceptanceCheckbox.attr('type') === 'checkbox') {
/* We assume the the terms has been accepted on screen before. */
$termsAcceptanceCheckbox.prop('checked', true);
}
trnRegisterPromise().fail(onError).done(function (data) {
executePaymentByBlikCode(data, code, onError);
});
}
}
}
};
tryArmBlikBoxConfirmation();
tryExecuteBlik();
};
jQuery(document).ready(function () {
choosePaymentMethod();
jQuery('body').on('change', '[name="p24_regulation_accept"]:checked', function() {
var $selectedCreditCardPayment = jQuery('.bank-box.bank-item.selected[onclick^="showPayJsPopup"]');
if ($selectedCreditCardPayment.length) {
$selectedCreditCardPayment.click();
}
});
tryArmBlikBox();
});