jQuery( function ( $ ) {
"use strict"
$( ".checkout-addon-action .button" ).click( function () {
var pluginStatus = $( this ).attr( "data-status" )
var pluginAction = $( this ).attr( "data-action" )
var pluginId = $( this ).attr( "data-plugin-id" )
var pluginSlug = $( this ).attr( "data-plugin-slug" )
var pluginUrl = $( this ).attr( "data-plugin-url" )
var disabledStatus = $( this ).hasClass( "disabled" )
console.log( "status start" )
console.log( pluginStatus )
console.log( pluginAction )
console.log( pluginSlug )
// Abort function if current user can't activate plugins.
if ( true === disabledStatus ) {
return
}
$( this ).attr( "disabled", "disabled" )
$( this ).children().attr( "disabled", "disabled" )
var button = this
$.ajax( {
type: "POST",
url: ajaxurl,
data: {
action: "change_klarna_addon_status",
nonce: kco_addons_params.change_addon_status_nonce,
plugin_status: pluginStatus,
plugin_action: pluginAction,
plugin_id: pluginId,
plugin_slug: pluginSlug,
plugin_url: pluginUrl,
},
dataType: "json",
success: function ( data ) {
console.log( "success" )
console.log( data )
},
error: function ( data ) {
console.log( "error" )
console.log( data )
},
complete: function ( data ) {
console.log( "complete" )
console.log( data )
if ( true === data.responseJSON.success ) {
// Change the status.
$( ".checkout-addon." + pluginId + " .button" ).attr(
"data-status",
data.responseJSON.data.new_status,
)
$( ".checkout-addon." + pluginId + " .button" ).attr(
"data-action",
data.responseJSON.data.new_action,
)
$( ".checkout-addon." + pluginId + " .button .action-text" ).text(
data.responseJSON.data.new_status_label,
)
if ( "installed" === data.responseJSON.data.new_status ) {
$( ".checkout-addon." + pluginId + " .button .switch" ).removeClass( "download" )
$( ".checkout-addon." + pluginId + " .button .switch .round" )
.removeClass( "dashicons" )
.removeClass( "dashicons-download" )
.addClass( "slider" )
}
} else {
$( ".checkout-addon." + pluginId ).append(
'<p class="addon-error">' + data.responseJSON.data + "</p>",
)
}
$( button ).removeAttr( "disabled" )
$( button ).children().removeAttr( "disabled" )
},
} )
} )
} )