This commit is contained in:
2025-04-01 00:38:54 +02:00
parent d4d4c0c09d
commit 87da06293a
22351 changed files with 5168854 additions and 7538 deletions

View File

@@ -0,0 +1,181 @@
/*
* @author Przelewy24
* @copyright Przelewy24
* @license https://www.gnu.org/licenses/lgpl-3.0.en.html
*/
$(document).ready(function () {
$.getScript("//ajax.googleapis.com/ajax/libs/jqueryui/1/jquery-ui.min.js", function () {
p24EnableSortable('.p24-container .draggable-list.available', '.p24-container .draggable-list.available');
p24EnableSortable('.p24-container .draggable-list.promote', '.p24-container .draggable-list.promote');
});
p24UpdateSortableInputs();
$("input[name=P24_PAYMENT_METHOD_CHECKOUT_LIST]").on('change', function () {
p24HideShowAdditionalSettingsSmart(300);
prepInstalment(getSuffix());
});
$("input[name=P24_PAYMENT_METHOD_CONFIRM_LIST]").on('change', function () {
p24HideShowAdditionalSettingsSmart(300);
prepInstalment(getSuffix());
});
additionalSettings();
$('input[name=currency]').change(function () {
var currentTab = helper_tabs[0][$('input[name=currency]:checked').attr('id')];
$.each(currentTab, function (index, value) {
if (['P24_MERCHANT_ID', 'P24_SHOP_ID', 'P24_ADDITIONAL_SETTINGS', 'P24_SALT', 'P24_API_KEY', 'P24_PAYMENTS_ORDER_LIST_FIRST', 'P24_PAYMENTS_ORDER_LIST_SECOND', 'P24_PAYMENTS_PROMOTE_LIST', 'P24_EXTRA_CHARGE_AMOUNT', 'P24_EXTRA_CHARGE_PERCENT','P24_INTRO_DISABLED'].indexOf(index) >= 0) {
if (!value) {
value = '';
}
$('#' + index).val(value);
} else if (['P24_PAYMENT_METHOD_CHECKOUT_LIST', 'P24_PAYMENT_METHOD_CONFIRM_LIST', 'P24_GRAPHICS_PAYMENT_METHOD_LIST', 'P24_ONECLICK_ENABLE', 'P24_ACCEPTINSHOP_ENABLE', 'P24_WAIT_FOR_RESULT', 'P24_PAY_CARD_INSIDE_ENABLE', 'P24_BLIK_INSIDE_ENABLE', 'P24_BLIK_SHOW_TO_CUSTOMER', 'P24_EXTRA_CHARGE_ENABLED','P24_INTRO_DISABLED'].indexOf(index) >= 0) {
if (value > 0) {
$('#' + index + '_on').prop('checked', true);
} else {
$('#' + index + '_off').prop('checked', true);
}
} else if ('P24_TEST_MODE' === index) {
if (value > 0) {
$('#active_test').prop('checked', true);
} else {
$('#active_prod').prop('checked', true);
}
} else if (['P24_VERIFYORDER'].indexOf(index) >= 0) {
if (!value) {
value = '';
}
$('#' + index).val(value);
}
});
additionalSettings();
});
});
var prepInstalment = function (currency) {
var selector = '.p24-sortable-contener[name="paymethod_list' + currency + '"] .draggable-item[data-id=303]';
var found = $(selector).length;
if (found) {
$("input[name='P24_INSTALMENT_ENABLED']").parents('.form-group').show();
$("input[name='P24_INSTALMENT_PROMOTE']").parents('.form-group').show();
} else {
$("input[name='P24_INSTALMENT_ENABLED']").parents('.form-group').hide();
$("input[name='P24_INSTALMENT_PROMOTE']").parents('.form-group').hide();
}
}
function p24HideShowAdditionalSettingsSmart(speed) {
var cssSuffix = '';
var currencyAttr = $('input[name=currency]:checked').attr('id')
if ('PLN' !== currencyAttr ) {
cssSuffix = '-' + currencyAttr;
}
var forCheckout = $("input[name='P24_PAYMENT_METHOD_CHECKOUT_LIST']:checked").val();
var forConfirm = $("input[name='P24_PAYMENT_METHOD_CONFIRM_LIST']:checked").val();
$('.p24-sortable-contener').parents('.form-group').fadeOut(speed);
var $boxForCheckout = $('.p24-sortable-contener.p24-for-checkout' + cssSuffix).parents('.form-group');
if (forCheckout > 0) {
$boxForCheckout.fadeIn(speed);
} else {
$boxForCheckout.fadeOut(speed);
}
var $boxForConfirm = $('.p24-sortable-contener.p24-for-confirm' + cssSuffix).parents('.form-group');
var $smallBoxForGraphic = $('input[name="P24_GRAPHICS_PAYMENT_METHOD_LIST"]').parents('.form-group');
if (forConfirm > 0) {
$boxForConfirm.fadeIn(speed);
$smallBoxForGraphic.fadeIn(speed);
} else {
$boxForConfirm.fadeOut(speed);
$smallBoxForGraphic.fadeOut(speed);
}
var $boxForDescription = $('.p24-sortable-contener.p24-payment-description' + cssSuffix).parents('.form-group');
if (forCheckout > 0 || forConfirm > 0) {
$boxForDescription.fadeIn(speed);
} else {
$boxForDescription.fadeOut(speed);
}
}
function p24EnableSortable(el, connectWith) {
$(el).sortable({
connectWith: connectWith,
placeholder: "ui-state-highlight",
forceHelperSize: true,
cursor: "move",
tolerance: "pointer",
revert: 200,
opacity: 0.75
}).bind('sortupdate', function () {
p24UpdateSortableInputs();
});
}
function p24UpdateSortableInputs() {
var inputFirst = '';
var inputSecond = '';
var inputPromote = '';
currency = getSuffix();
$('.draggable-list-first[data-name="list' + currency + '"] .bank-box').each(function () {
var id = $(this).attr('data-id');
inputFirst = inputFirst + id + ',';
});
$('.draggable-list-second[data-name="list' + currency + '"] .bank-box').each(function () {
var id = $(this).attr('data-id');
inputSecond = inputSecond + id + ',';
});
$('.draggable-list-promote[data-name="list' + currency + '"] .bank-box').each(function () {
var id = $(this).attr('data-id');
inputPromote = inputPromote + id + ',';
});
$('input[name="P24_PAYMENTS_ORDER_LIST_FIRST"]').val(inputFirst);
$('input[name="P24_PAYMENTS_ORDER_LIST_SECOND"]').val(inputSecond);
$('input[name="P24_PAYMENTS_PROMOTE_LIST"]').val(inputPromote);
}
function getSuffix() {
if ('PLN' === $('input[name=currency]:checked').attr('id')) {
currency = "";
} else {
currency = "_" + $('input[name=currency]:checked').attr('id');
}
return currency;
}
function additionalSettings() {
var currentTab = helper_tabs[0][$('input[name=currency]:checked').attr('id')]["P24_ADDITIONAL_SETTINGS"];
if (currentTab["testApi"]) {
p24HideShowAdditionalSettingsSmart(0);
if (currentTab["P24_ONECLICK_ENABLE"]) {
$("input[name='P24_ONECLICK_ENABLE']").parents('.form-group').show();
}
if (currentTab["P24_BLIK_UID_ENABLE"]) {
$("input[name='P24_BLIK_UID_ENABLE']").parents('.form-group').show();
}
$("input[name='P24_PAY_CARD_INSIDE_ENABLE']").parents('.form-group').show();
$("input[name='P24_PAYMENTS_ORDER_LIST_FIRST']").parents('.form-group').show();
$("input[name='P24_PAYMENTS_ORDER_LIST_SECOND']").parents('.form-group').show();
$("input[name='P24_PAYMENTS_PROMOTE_LIST']").parents('.form-group').show();
$("input[name='P24_INTRO_DISABLED']").parents('.form-group').show();
} else {
$('.p24-sortable-contener').parents('.form-group').fadeOut(0);
$("input[name='P24_ONECLICK_ENABLE']").parents('.form-group').hide();
$("input[name='P24_BLIK_UID_ENABLE']").parents('.form-group').hide();
$("input[name='P24_PAY_CARD_INSIDE_ENABLE']").parents('.form-group').hide();
$("input[name='P24_PAYMENTS_ORDER_LIST_FIRST']").parents('.form-group').hide();
$("input[name='P24_PAYMENTS_ORDER_LIST_SECOND']").parents('.form-group').hide();
$("input[name='P24_PAYMENTS_PROMOTE_LIST']").parents('.form-group').hide();
$("input[name='P24_GRAPHICS_PAYMENT_METHOD_LIST']").parents('.form-group').hide();
$("input[name='P24_INTRO_DISABLED']").parents('.form-group').hide();
}
prepInstalment(getSuffix());
}

View File

@@ -0,0 +1,43 @@
/*
* @author Przelewy24
* @copyright Przelewy24
* @license https://www.gnu.org/licenses/lgpl-3.0.en.html
*/
$(function() {
let $targetInput = $('#p24-amount-to-refund ');
let $lines = $('#p24-refund-form input.js-line')
let recount = function ()
{
let newVal = 0;
$lines.each(function(idx, elm) {
let $elm = $(elm);
let q = $elm.val();
let p = $elm.data('unit-price');
newVal += q * p;
newVal = Math.round(newVal * 100) / 100;
});
newVal = Math.min(newVal, $targetInput.data('maximum'));
$targetInput.val(newVal);
}
let reset = function ()
{
$lines.each(function(idx, elm) {
let $elm = $(elm);
$elm.val(0);
});
}
$lines.on('change', recount);
$targetInput.on('change', reset);
});
$(function () {
let needReloadRefund = $('#p24-need-reload-refund').data('need');
if (needReloadRefund) {
location = location.protocol + '//' + location.host + location.pathname + location.search;
}
});

View File

@@ -0,0 +1,7 @@
<?php
/**
* @author Przelewy24
* @copyright Przelewy24
* @license https://www.gnu.org/licenses/lgpl-3.0.en.html
*/
header('Location: ../');

View File

@@ -0,0 +1,523 @@
/*
* @author Przelewy24
* @copyright Przelewy24
* @license https://www.gnu.org/licenses/lgpl-3.0.en.html
*/
var p24GetRawAdditionalFormsContainer = function () {
var idVar = 'p24-additional-forms';
var rawContainer = document.getElementById(idVar);
if (!rawContainer) {
rawContainer = document.createElement('div');
rawContainer.id = idVar;
document.body.appendChild(rawContainer);
}
return rawContainer;
};
function redirectAfterCardPayment(url)
{
setTimeout(function() {
window.location.href = $('#p24-card-config-element').data(url);
}, 500);
}
function payInShopSuccess() {
redirectAfterCardPayment('successUrl');
}
function payInShopFailure() {
redirectAfterCardPayment('failureUrl');
}
/* BLIK */
$(function(){
var $configElement;
var armed = false;
var commonError = function(selector) {
var $section = $('#p24-blik-section');
var $error = $section.find(selector);
$error.show();
$error.addClass('animate');
setTimeout(function () {
$error.removeClass('animate');
}, 2000);
};
var blikError = function() {
commonError('.error-code');
};
var regulationError = function() {
commonError('.error-regulation');
};
var regulationNoError = function() {
var $section = $('#p24-blik-section');
var $error = $section.find('.error-regulation');
$error.hide();
};
var prRegulationError = function() {
commonError('.error-pr-regulation');
};
var prRegulationNoError = function() {
var $section = $('#p24-blik-section');
var $error = $section.find('.error-pr-regulation');
$error.hide();
};
var executePaymentByBlikCode = function($form, cartId, blikCode) {
$form.find('button').prop('disabled', true);
var request = {
'action': 'executeBlik',
'cartId': cartId,
'blikCode': blikCode
};
$.ajax($configElement.data('ajaxurl'), {
method: 'POST', type: 'POST',
data: request,
}).success(function (response) {
var response = JSON.parse(response);
if (response.success || response.reload) {
var returnUrl = response.returnUrl;
/* We are giving few seconds for user to accept transaction. */
setTimeout(function() {window.location = returnUrl;}, 3000);
} else {
blikError();
$form.find('button').prop('disabled', false);
}
}).error(function () {
blikError();
$form.find('button').prop('disabled', false);
});
};
var checkRegulations = function ()
{
var $regulation;
$regulation = $('#p24_regulation_accept');
if (!$regulation.length) {
$regulation = $('#p24-blik-regulation-accept');
}
if (!$regulation.length) {
/* Not possible on valid site. */
return false;
}
if ($regulation.prop('checked')) {
regulationNoError();
return true;
} else {
regulationError();
return false;
}
};
var checkPrRegulations = function ()
{
var $regulation;
$regulation = $('#conditions_to_approve\\[terms-and-conditions\\]');
if (!$regulation.length) {
/* Accepted or not needed. */
return true;
}
if ($regulation.prop('checked')) {
prRegulationNoError();
return true;
} else {
prRegulationError();
return false;
}
};
var showBlikSection = function() {
var $section = $('#p24-blik-section');
var $pad = $('#p24-additional-forms');
$section.appendTo($pad);
$section.show();
var cartId = $configElement.data('cartid');
var $form = $section.find('form');
$form.on('submit', function (e) {
e.preventDefault();
var regulations = checkRegulations();
var prRegulations = checkPrRegulations();
if (regulations && prRegulations) {
var blikCode = $section.find('input[name=blik]').val();
executePaymentByBlikCode($form, cartId, blikCode);
}
});
};
var hideBlikSection = function () {
var $section = $('#p24-blik-section');
$section.hide();
}
var tryArmBlikBoxPayment = function() {
var $masterMethodId = $('#master-active-payment-method');
$masterMethodId.on('change', function () {
var val = parseInt($masterMethodId.val());
if (181 === val) {
showBlikSection();
} else {
hideBlikSection();
}
});
armed = true;
};
var tryArmBlikBoxConfirmation = function() {
/* The id is too random to use. */
var $input = $('input[data-module-name=przelewy24-method-181]');
if ($input.length) {
var rawFormContainer = p24GetRawAdditionalFormsContainer();
$input.on('change', function (e) {
if (!$input.prop('checked')) {
/* Nothing to do. */
return;
}
var randomId = $input.attr('id');
var $container = $('#' + randomId + '-container');
var $formContainer = $(rawFormContainer);
$container.append($formContainer);
$formContainer.trigger('hide-old');
var hideOldEvent = new Event('hide-old');
rawFormContainer.dispatchEvent(hideOldEvent);
showBlikSection();
});
rawFormContainer.addEventListener('hide-old', function() {
hideBlikSection();
});
armed = true;
}
};
var tryArmBlikBox = function(retries) {
if (armed || retries <= 0) {
return;
}
$configElement = $('#p24-blik-config-element');
if ($configElement.length) {
var pageType = $configElement.data('pagetype');
switch (pageType) {
case 'payment':
tryArmBlikBoxPayment();
break;
case 'confirmation':
tryArmBlikBoxConfirmation();
break;
}
}
if (!armed) {
setTimeout(tryArmBlikBox, 1000, retries - 1);
}
};
tryArmBlikBox(10);
});
/* Card */
$(function(){
var $configElement;
var armed = false;
var commonError = function(selector) {
var $section = $('#p24-card-section');
var $error = $section.find(selector);
$error.show();
$error.addClass('animate');
setTimeout(function () {
$error.removeClass('animate');
}, 2000);
};
var otherError = function () {
commonError('error-other');
}
var regulationError = function() {
commonError('.error-regulation');
};
var regulationNoError = function() {
var $section = $('#p24-card-section');
var $error = $section.find('.error-regulation');
$error.hide();
};
var prRegulationError = function() {
commonError('.error-pr-regulation');
};
var prRegulationNoError = function() {
var $section = $('#p24-card-section');
var $error = $section.find('.error-pr-regulation');
$error.hide();
};
var showCardLoader = function () {
$('.p24-card-loader').fadeIn(400);
}
function hideCardLoader() {
$('.p24-card-loader').fadeOut(300);
}
var register = function (cartId, method) {
if ('object' === typeof P24_Transaction) {
return;
}
var $formContainer = $('#P24FormContainer');
var termsAcceptRequired = $configElement.data('termsConfirmRequired');
if (termsAcceptRequired && !$('#p24-card-regulation-accept').is(':checked')) {
return;
}
showCardLoader();
$.ajax($configElement.data('ajaxurl'), {
method: 'POST',
type: 'POST',
data: {
action: 'register',
cartId: cartId,
method: method,
},
}).success(function (response) {
var response = JSON.parse(response);
if (response.script && response.signature) {
$formContainer.attr('data-sign', response.signature);
$.getScript(response.script, function () {
P24_Transaction.init();
hideCardLoader();
});
} else {
hideCardLoader();
commonError();
}
}).error(function () {
hideCardLoader();
payInShopFailure();
});
};
var checkRegulations = function ()
{
var $regulation;
$regulation = $('#p24_regulation_accept');
if (!$regulation.length) {
$regulation = $('#p24-card-regulation-accept');
}
if (!$regulation.length) {
/* Not possible on valid site. */
return false;
}
if ($regulation.prop('checked')) {
regulationNoError();
return true;
} else {
regulationError();
return false;
}
};
var checkPrRegulations = function ()
{
var $regulation;
$regulation = $('#conditions_to_approve\\[terms-and-conditions\\]');
if (!$regulation.length) {
/* Accepted or not needed. */
return true;
}
if ($regulation.prop('checked')) {
prRegulationNoError();
return true;
} else {
prRegulationError();
return false;
}
};
var getMethodId = function() {
var $masterMethodId = $('#master-active-payment-method');
var $primaryMethod = $('[data-module-name^="przelewy24-method-"]:checked');
if ($masterMethodId.length === 0 && $primaryMethod.length > 0) {
return parseInt($primaryMethod.data('moduleName').replace('przelewy24-method-', ''));
}
return parseInt($masterMethodId.val());
}
var showCardSection = function() {
var $section = $('#p24-card-section');
var $pad = $('#p24-additional-forms');
$section.appendTo($pad);
$section.show();
register($configElement.data('cartid'), getMethodId());
};
var hideCardSection = function () {
var $section = $('#p24-card-section');
$section.hide();
}
var tryArmCardBoxPayment = function($configElement) {
var ids = $configElement.data('ids').split(',');
var $masterMethodId = $('#master-active-payment-method');
$masterMethodId.on('change', function () {
var val = parseInt($masterMethodId.val());
var notSelected = ids.every(function (id) {
id = parseInt(id);
return id !== val;
});
if (notSelected) {
hideCardSection();
} else {
showCardSection();
}
});
armed = true;
}
var tryArmCardBoxConfirmationOne = function(id) {
/* It could be armed for different card id. */
if (armed) {
return;
}
/* The id is too random to use. */
var $input = $('input[data-module-name=przelewy24-method-' + id + ']');
if ($input.length) {
var rawFormContainer = p24GetRawAdditionalFormsContainer();
$input.on('change', function (e) {
if (!$input.prop('checked')) {
/* Nothing to do. */
return;
}
var randomId = $input.attr('id');
var $container = $('#' + randomId + '-container');
var $formContainer = $(rawFormContainer);
$container.append($formContainer);
$formContainer.trigger('hide-old');
var hideOldEvent = new Event('hide-old');
rawFormContainer.dispatchEvent(hideOldEvent);
showCardSection();
});
rawFormContainer.addEventListener('hide-old', function() {
hideCardSection();
});
armed = true;
}
};
var tryArmCardBoxConfirmation = function() {
var ids = $configElement.data('ids').split(',');
ids.forEach(function (id) {
tryArmCardBoxConfirmationOne(id);
});
};
var tryArmCardBox = function(retries) {
if (armed || retries <= 0) {
return;
}
$configElement = $('#p24-card-config-element');
$(document).on('change', '#p24-card-regulation-accept', function() {
if ($(this).is(':checked')) {
$('#P24FormContainer').show();
register($configElement.data('cartid'), getMethodId());
} else {
$('#P24FormContainer').hide();
}
});
if ($configElement.length) {
var pageType = $configElement.data('pagetype');
switch (pageType) {
case 'payment':
tryArmCardBoxPayment($configElement);
break;
case 'confirmation':
tryArmCardBoxConfirmation();
break;
}
}
if (!armed) {
setTimeout(tryArmCardBox, 1000, retries - 1);
}
};
tryArmCardBox(10);
});
/* Other methods: from Przelewy24 and other vendors */
$(function(){
var armed = false;
var checkForBlikOrCard = function ($configElement, number) {
/* This list is not empty. */
var ids = $configElement.data('cardIds').split(',');
ids.push('181'); /* Blik */
number = number.toString();
return ids.indexOf(number) >= 0;
};
var tryArmOtherConfirmation = function ($configElement) {
var rawFormContainer = p24GetRawAdditionalFormsContainer();
var paymentOptions = document.querySelectorAll('input[name=payment-option]');
paymentOptions.forEach(function (elm) {
var needArming;
var result = /^przelewy24-method-(\d+)$/.exec(elm.dataset.moduleName);
if (result) {
needArming = !checkForBlikOrCard($configElement, parseInt(result[1]));
} else {
/* Different module. */
needArming = true;
}
console.log(elm.dataset.moduleName, needArming)
if (needArming) {
elm.addEventListener('change', function (e) {
var hideOldEvent = new Event('hide-old');
rawFormContainer.dispatchEvent(hideOldEvent);
});
}
});
armed = true;
};
var tryArmOther = function(retries) {
if (armed || retries <= 0) {
return;
}
$configElement = $('#p24-other-config-element');
if ($configElement.length) {
var pageType = $configElement.data('pagetype');
switch (pageType) {
case 'confirmation':
tryArmOtherConfirmation($configElement);
break;
}
}
if (!armed) {
setTimeout(tryArmOther, 1000, retries - 1);
}
};
tryArmOther(10);
});

View File

@@ -0,0 +1,264 @@
/*
* @author Przelewy24
* @copyright Przelewy24
* @license https://www.gnu.org/licenses/lgpl-3.0.en.html
*/
function p24onResize() {
if ($(window).width() <= 640) {
$('.pay-method-list').addClass('mobile');
} else {
$('.pay-method-list').removeClass('mobile');
}
}
function p24DisplayOrderDetail(extrachargeText, extracharge)
{
if ('undefined' !== typeof extracharge && 0 !== $('.line-total').length) {
$('.line-total').before(
'<tr class="text-xs-right line-shipping" id="extracharge">' +
'<td colspan="3"><strong>' + extrachargeText + '</strong></td>' +
'<td colspan="1">' + extracharge + '</td>' +
'</tr>');
}
}
function p24DisplayExtrachargeReturn(extrachargeText, extrachargeReturnFormatted, currency)
{
if ('undefined' !== typeof currency && 0 !== $('.order-confirmation-table .font-weight-bold').length) {
$('.order-confirmation-table .font-weight-bold').before(
'<tr class="line-shipping" id="extracharge">' +
'<td colspan="1"><strong>' + extrachargeText + '</strong></td>' +
'<td colspan="1" class="text-xs-right">' + extrachargeReturnFormatted + ' '+currency+'</td>' +
'</tr>');
}
}
function p24DisplayExtrachargeAdmin(extrachargeText, extrachargeReturnFormatted, currency)
{
if ('undefined' !== typeof currency && 0 !== $('.panel .panel-total .table #total_order').length) {
$('.panel .panel-total .table #total_order').before(
'<tr id="extracharge">' +
'<td class="text-right" colspan="1"><strong>' + extrachargeText + '</strong></td>' +
'<td colspan="1" class="amount text-right nowrap">' + extrachargeReturnFormatted + ' '+currency+'</td>' +
'</tr>');
}
}
function p24setMethod(method) {
$('form#przelewy24Form input[name=p24_method]').val(parseInt(method) > 0 ? parseInt(method) : "");
if (method == 303) {
$('form#przelewy24Form input[name=p24_channel]').val(parseInt('2048'));
}
var $master = $('#master-active-payment-method');
$master.val(parseInt(method));
$master.trigger('change');
}
function p24RememberCard(action, data) {
jQuery.ajax({
url: action,
method: 'POST',
data: data // like: {order: order}
});
}
// global settings
var formObject = {
'formAction': '',
'btnTextSubmit': ''
};
function formSend()
{
var actionForm = $('.p24-register-card-wrapper').attr('data-action-payment-check');
$.ajax(actionForm, {
method: 'POST',
data: { cartId : $('.p24-register-card-wrapper').attr('data-card-cart-id') }
}).done(function (data) {
if (1 === data) {
location.reload();
}
});
return true
}
$(document).ready(function () {
$('#przelewy24Form').on('submit', function(){
var haveInvoice = formSend();
if(haveInvoice)
{
return true;
}
return false;
});
if (0 !== $('#extracharge_text').length)
{
p24DisplayOrderDetail($('#extracharge_text').val(), $('#extracharge').val());
}
if (0 !== $('#extrachargeReturn').length)
{
p24DisplayExtrachargeReturn($('#extracharge_text').val(), $('#extrachargeReturnFormatted').val(), $('#currencySign').val());
}
if (0 !== $('#extracharge').length)
{
p24DisplayExtrachargeAdmin($('#extracharge_text').val(), $('#extrachargeFormatted').val(), $('#currencySign').val());
}
$( "#P24FormArea" ).click(function( event ) {
event.stopPropagation();
});
$('.bank-box').click(function () {
var isSelected = false;
var $btn = $('form#przelewy24Form button[type="submit"]');
if ($(this).hasClass('selected')) {
isSelected = true;
}
$('.bank-box').removeClass('selected').addClass('inactive');
if (isSelected) {
if (formObject.formAction.length) {
$("form#przelewy24Form").attr('action', formObject.formAction);
$btn.text(formObject.btnTextSubmit);
$('.p24-small-text').show();
}
p24setMethod(0);
$('.bank-box').removeClass('inactive');
} else {
if ($(this).attr('data-action')) { //
if (!formObject.formAction) {
formObject.formAction = $("form#przelewy24Form").attr('action');
}
$("form#przelewy24Form").attr('action', $(this).attr('data-action'));
$('form input[name="p24_card_customer_id"]').val($(this).attr('data-card-id'));
var btnText = $btn.attr('data-text-oneclick');
if (!formObject.btnTextSubmit) {
formObject.btnTextSubmit = $btn.text();
}
$btn.text(btnText);
$('.p24-small-text').hide();
} else {
p24setMethod($(this).attr('data-id'));
if (formObject.formAction.length) {
$("form#przelewy24Form").attr('action', formObject.formAction);
$btn.text(formObject.btnTextSubmit);
$('.p24-small-text').show();
}
}
$(this).addClass('selected').removeClass('inactive');
}
});
// show more / less payments method
$('.p24-more-stuff').click(function () {
$(this).fadeOut(100, function () {
$('.p24-less-stuff').fadeIn();
});
$('.pay-method-list-second').slideDown();
});
$('.p24-less-stuff').click(function () {
$(this).fadeOut(100, function () {
$('.p24-more-stuff').fadeIn();
});
$('.pay-method-list-second').slideUp();
});
//oneClick
$(".p24-payment-return-page input.p24-remember-my-card").change(function () {
var action = $(this).attr('data-action');
var remember = 0;
if ($(this).is(':checked')) {
remember = 1;
}
var data = {'remember': remember};
p24RememberCard(action, data);
if ($('#P24_registerCard').length) {
if ($('.p24-remember-my-card').is(':checked')) {
$('#P24_registerCard').prop('checked', true);
}
else{
$('#P24_registerCard').prop('checked', false);
}
}
});
if ($(".p24-payment-return-page input.p24-remember-my-card:checked")) {
var action = $("input.p24-remember-my-card:checked").attr('data-action');
var data = {'remember': 1};
if (!!action) {
p24RememberCard(action, data);
}
}
p24onResize();
if ($('#P24FormArea').length) {
var targetNode = document.getElementById('P24FormArea');
var config = {
attributes: true,
childList: true
};
var callback = function (mutation) {
try {
document.getElementById('P24_registerCard').style.display = 'none';
document.getElementById('register-text').style.display = 'none';
document.getElementById("P24_registerCard").checked = document.getElementById("p24-remember-my-card").checked;
} catch(ex) {
}
};
var observer = new MutationObserver(callback);
observer.observe(targetNode, config);
}
if (0 !== $('.refundAmount').length) {
$('.refundAmount').submit(function () {
return confirm($('#refundAmountText').val());
});
}
$('#p24_regulation_accept').on('change', function (ev) {
var $checkbox = $(this);
$('#submitButton').prop('disabled', !$checkbox.prop('checked'));
})
});
$(window).resize(function () {
p24onResize();
});
function p24showLoader() {
$('.p24-loader').fadeIn(400);
$('.p24-loader-bg').fadeIn(300);
}
function p24hideLoader() {
$('.p24-loader').fadeOut(300);
$('.p24-loader-bg').fadeOut(300);
}
function formSubmit(description) {
var form = document.getElementById('przelewy24Form');
var descriptionInput = $("[name='p24_description']");
if (undefined !== description && null !== description) {
descriptionInput.val(description);
}
form.submit();
}
/* Fix hardcoded images. */
$(function() {
var rx = /logo_(\d+)/;
var $images = $('img[src*=\'/template/201312/bank/logo_\']');
$images.each(function (idx, elm) {
var $elm = $(elm);
var $parent = $elm.parent();
var src = $elm.attr('src');
var executedRx = rx.exec(src);
if (!executedRx) {
return;
}
var $newBox = $('<span>').addClass('bank-logo').addClass('bank-logo-' + executedRx[1]);
$parent.append($newBox);
$elm.remove();
})
});

View File

@@ -0,0 +1,195 @@
/*
* @author Przelewy24
* @copyright Przelewy24
* @license https://www.gnu.org/licenses/lgpl-3.0.en.html
*/
$(function(){
var $paymentBox;
var $configElement;
var armed = false;
var blikError = function() {
var $modal = $('#p24-blik-modal');
$modal.removeClass('loading');
$modal.find('.error').show();
};
var executePaymentByBlikCode = function(currencySuffix, token, blikCode) {
var request = {
'action': 'executePaymentByBlikCode',
'currencySuffix': currencySuffix,
'token': token,
'blikCode': blikCode
};
$.ajax($configElement.data('ajaxurl'), {
method: 'POST', type: 'POST',
data: request,
}).success(function (response) {
var response = JSON.parse(response);
if (response.success) {
var returnUrl = $configElement.data('returnurl');
/* We are giving few seconds for user to accept transaction. */
setTimeout(function() {window.location = returnUrl;}, 3000);
} else {
blikError();
}
}).error(blikError);
};
var trnRegister = function(cartId) {
var request = {
'action': 'trnRegister',
'cartId': cartId
};
/* The xhr from jQuery do not have responseURL. */
var redirectHackXhr = new XMLHttpRequest();
$.ajax($configElement.data('ajaxurl'), {
method: 'POST', type: 'POST',
data: request,
xhr: function() {return redirectHackXhr;}
}).success(function (response) {
try {
response = JSON.parse(response);
} catch (e) {
/* Assume 302 or something like that. */
location = redirectHackXhr.responseURL;
return;
}
if (response.success) {
var $modal = $('#p24-blik-modal');
$modal.removeClass('loading');
var $button = $modal.find('button');
$button.on('click', function (e) {
e.preventDefault();
var $input = $modal.find('input');
var code = $input.val();
if (/^\d{6}$/.test(code)) {
$modal.addClass('loading');
executePaymentByBlikCode(response.currencySuffix, response.token, code);
} else {
$modal.find('.error').show();
}
});
}
});
};
var tryArmBlikBoxPaymentGraphical = function($configElement) {
var $paymentBox = $('a.bank-box[data-id=181]');
if ($paymentBox.length) {
var clickFunction = function (e) {
if (!$paymentBox.hasClass('selected')) {
/* Nothing to do. */
return;
}
var $regulation = $('#p24_regulation_accept');
if ($regulation.length) {
var regulationAccepted = $regulation.prop('checked');
if (!regulationAccepted) {
/* Nothing to do. */
return;
}
}
e.preventDefault();
var $modal = $('#p24-blik-modal');
$modal.addClass('loading');
$('#p24-blik-modal-background').show();
var cartId = $configElement.data('cartid');
trnRegister(cartId);
}
$paymentBox.on('click', function (e) {
/* There may be an event we want to execute first. */
setTimeout(clickFunction, 100, e);
});
armed = true;
}
}
var tryArmBlikBoxPaymentTextual = function($configElement) {
var $paymentInput = $('input#paymethod-bank-id-181');
if ($paymentInput.length) {
$paymentInput.on('change', function (e) {
var $regulation = $('#p24_regulation_accept');
if ($regulation.length) {
var regulationAccepted = $regulation.prop('checked');
if (!regulationAccepted) {
/* Nothing to do. */
return;
}
}
if ($paymentInput.prop('checked')) {
var $modal = $('#p24-blik-modal');
$modal.addClass('loading');
$('#p24-blik-modal-background').show();
var cartId = $configElement.data('cartid');
trnRegister(cartId);
}
});
armed = true;
}
};
var tryArmBlikBoxConfirmation = function($configElement) {
/* The id is too random to use. */
var $input = $('input[data-module-name=przelewy24-method-181]');
if ($input.length) {
var $regulation = $('#conditions_to_approve\\[terms-and-conditions\\]');
$input.on('change', function (e) {
if (!$input.prop('checked')) {
/* Nothing to do. */
return;
}
if ($regulation.length) {
var regulationAccepted = $regulation.prop('checked');
if (!regulationAccepted) {
/* Nothing to do. */
return;
}
}
var $modal = $('#p24-blik-modal');
$modal.addClass('loading');
$('#p24-blik-modal-background').show();
var cartId = $configElement.data('cartid');
trnRegister(cartId);
});
if ($regulation.length) {
$regulation.on('change', function (e) {
$input.trigger('change');
});
}
armed = true;
}
};
var tryArmBlikBox = function(retries) {
if (armed || retries <= 0) {
return;
}
$configElement = $('#p24-blik-config-element');
if ($configElement.length) {
var pageType = $configElement.data('pagetype');
switch (pageType) {
case 'payment':
/* We have to check both methods. */
tryArmBlikBoxPaymentGraphical($configElement);
tryArmBlikBoxPaymentTextual($configElement);
break;
case 'confirmation':
tryArmBlikBoxConfirmation($configElement);
break;
}
}
if (!armed) {
setTimeout(tryArmBlikBox, 1000, retries - 1);
}
};
tryArmBlikBox(10);
});

View File

@@ -0,0 +1,25 @@
/*
* @author Przelewy24
* @copyright Przelewy24
* @license https://www.gnu.org/licenses/lgpl-3.0.en.html
*/
/* Hide Apple Pay if not configured or not available. */
$(function() {
var hideById = function(id) {
/* There are different places and modes the payment can be displayed. */
$('a.bank-box[data-id=' + id + ']').css('display', 'none');
$('input[data-module-name=przelewy24-method-' + id + ']').parent().parent().parent().css('display', 'none');
$('input#paymethod-bank-id-' + id).parent().css('display', 'none');
}
var hasApplePay = window.ApplePaySession && window.ApplePaySession.canMakePayments();
if (!hasApplePay) {
[
232,
252,
253,
].forEach(hideById);
}
});