Files
torebki-fabiola.pl/wp-content/plugins/revolut-gateway-for-woocommerce/assets/js/revolut-setting.js
2026-03-05 13:07:40 +01:00

250 lines
7.2 KiB
JavaScript

jQuery(document).ready(function ($) {
$('#woocommerce_revolut_cc_restore_button').hide()
const revolutMode = $('#woocommerce_revolut_mode')
const apiDevKey = $('#woocommerce_revolut_api_key_dev').parents().closest('tr')
const apiSandboxKey = $('#woocommerce_revolut_api_key_sandbox').parents().closest('tr')
const apiLiveKey = $('#woocommerce_revolut_api_key').parents().closest('tr')
const payment_action = $('#woocommerce_revolut_payment_action')
const capture_checkbox = $('#woocommerce_revolut_accept_capture')
const capture_checkbox_container = capture_checkbox.parents().closest('tr')
const customize_capture_status_checkbox = $(
'#woocommerce_revolut_customise_capture_status',
)
const customize_capture_status_checkbox_container = customize_capture_status_checkbox
.parents()
.closest('tr')
const capture_status = $('#woocommerce_revolut_selected_capture_status_list')
.parents()
.closest('tr')
$('#woocommerce_revolut_payment_request_onboard_applepay').hide()
if (!capture_checkbox.is(':checked')) {
customize_capture_status_checkbox_container.hide()
capture_status.hide()
} else {
customize_capture_status_checkbox_container.show()
}
if (!customize_capture_status_checkbox.is(':checked')) {
capture_status.hide()
}
if (revolutMode.val() == 'sandbox') {
change('sandbox')
} else if (revolutMode.val() == 'dev') {
change('dev')
} else {
change('live')
}
if (payment_action.val() == 'authorize') {
capture_checkbox_container.show()
} else {
capture_checkbox_container.hide()
customize_capture_status_checkbox_container.hide()
capture_status.hide()
}
customize_capture_status_checkbox.on('change', function () {
capture_status.toggle($(this).is(':checked'))
if (!$(this).is(':checked')) {
$('#woocommerce_revolut_selected_capture_status_list').val(null).trigger('change')
}
})
capture_checkbox.on('change', function () {
customize_capture_status_checkbox_container.toggle($(this).is(':checked'))
customize_capture_status_checkbox.change()
if (!$(this).is(':checked')) {
capture_status.hide()
}
})
revolutMode.on('change', function () {
var mode = $(this).val()
if (mode == 'sandbox') {
change('sandbox')
} else if (mode == 'dev') {
change('dev')
} else {
change('live')
}
})
// change payment action
payment_action.on('change', function () {
if (payment_action.val() == 'authorize') {
capture_checkbox_container.show()
capture_checkbox.change()
} else {
capture_checkbox_container.hide()
customize_capture_status_checkbox_container.hide()
capture_status.hide()
}
})
// change API mode
function change(mode) {
if (mode == 'sandbox') {
apiSandboxKey.show()
apiLiveKey.hide()
apiDevKey.hide()
} else if (mode == 'dev') {
apiSandboxKey.hide()
apiLiveKey.hide()
apiDevKey.show()
apiLiveKey.hide()
} else {
apiSandboxKey.hide()
apiDevKey.hide()
apiLiveKey.show()
}
}
// onboard apple pay domain
$('.setup-applepay-domain').click(function (event) {
event.preventDefault()
$.ajax({
type: 'POST',
url: ajaxurl,
data: {
action: 'wc_revolut_onboard_applepay_domain',
},
success: function (response) {
let message = ''
const setup_button = $('.setup-applepay-domain')
if (!response.success && response.message) {
message = response.message
}
if (response.success) {
setup_button.text('Success')
setup_button.prop('disabled', true)
return true
}
$('.setup-applepay-domain-error')
.show()
.text('Setup Failed: ' + message)
},
})
})
$(document).on('change', '.revolut_styling_option_enable', function () {
if (!$('.revolut_styling_option_enable').is(':checked')) {
$('.revolut_styling_option').parents('tr').hide()
restoreStylinOptions()
} else {
$('.revolut_styling_option').parents('tr').show()
}
})
$(document).on('click', '.revolut_style_restore', function () {
restoreStylinOptions()
})
if (!$('.revolut_styling_option_enable').is(':checked')) {
$('.revolut_styling_option').parents('tr').hide()
}
function restoreStylinOptions() {
$('#woocommerce_revolut_cc_widget_background_color')
.val(default_options.default_bg_color)
.trigger('change')
$('#woocommerce_revolut_cc_widget_text_color')
.val(default_options.default_text_color)
.trigger('change')
$('#woocommerce_revolut_cc_revolut_logo_color').prop('selectedIndex', 0).val()
}
adjustCardWidgetStylingOptions()
$(document).on('change', '#woocommerce_revolut_cc_card_widget_type', function () {
adjustCardWidgetStylingOptions()
})
function adjustCardWidgetStylingOptions() {
if ($('#woocommerce_revolut_cc_card_widget_type').val() === 'popup') {
$('#woocommerce_revolut_cc_styling_title').hide()
$('#woocommerce_revolut_cc_widget_styling').parents('table').hide()
$('#woocommerce_revolut_cc_enable_cardholder_name').parents('tr').hide()
} else {
$('#woocommerce_revolut_cc_styling_title').show()
$('#woocommerce_revolut_cc_widget_styling').parents('table').show()
$('#woocommerce_revolut_cc_enable_cardholder_name').parents('tr').show()
}
}
$('#woocommerce_revolut_advanced_settings_clear_unused_order_records').hide()
const consent_clear_unused_order_records = $(
'#woocommerce_revolut_advanced_settings_consent_clear_unused_order_records',
)
consent_clear_unused_order_records.change(function () {
if ($(this).is(':checked')) {
consent_clear_unused_order_records.removeAttr('style')
} else {
consent_clear_unused_order_records.css({ borderColor: 'red' })
}
})
$('.revolut_clear_unused_order_records').click(function (e) {
e.preventDefault()
self = $(this)
if (!consent_clear_unused_order_records.is(':checked')) {
consent_clear_unused_order_records.css({ borderColor: 'red' })
alert(
'Please indicate that you have read and agree to the consequences of this operation.',
)
return false
}
$.blockUI({
message: null,
overlayCSS: { background: '#fff', opacity: 0.6 },
})
$.ajax({
type: 'POST',
url: ajaxurl,
data: {
action: 'wc_revolut_clear_records',
},
success: function (response) {
$.unblockUI()
if (response && !response.success) {
return alert(response.message)
}
alert('Operation completed successfully.')
},
error: function (jqXHR, textStatus, errorThrown) {
$.unblockUI()
if (jqXHR && jqXHR.responseText) {
let response = jqXHR.responseText.match(/{(.*?)}/)
if (response.length > 0 && response[0]) {
try {
response = JSON.parse(response[0])
if (response.message) {
alert(response.message)
return false
}
} catch (e) {
// swallow error and handle in generic block below
}
}
}
alert(errorThrown)
},
})
})
})