Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93
/home/sportsfe.../httpdocs/clone/wp-conte.../plugins/advanced.../admin/assets/js
File: admin.js
// phpcs:ignoreFile
[0] Fix | Delete
jQuery( document ).ready( function ( $ ) {
[1] Fix | Delete
[2] Fix | Delete
function advads_load_ad_type_parameter_metabox ( ad_type ) {
[3] Fix | Delete
jQuery( '#advanced-ad-type input' ).prop( 'disabled', true )
[4] Fix | Delete
$( '#advanced-ads-tinymce-wrapper' ).hide()
[5] Fix | Delete
$( '#advanced-ads-ad-parameters' ).html( '<span class="spinner advads-ad-parameters-spinner advads-spinner"></span>' )
[6] Fix | Delete
$.ajax( {
[7] Fix | Delete
type: 'POST',
[8] Fix | Delete
url: ajaxurl,
[9] Fix | Delete
data: {
[10] Fix | Delete
'action': 'load_ad_parameters_metabox',
[11] Fix | Delete
'ad_type': ad_type,
[12] Fix | Delete
'ad_id': $( '#post_ID' ).val(),
[13] Fix | Delete
'nonce': advadsglobal.ajax_nonce
[14] Fix | Delete
},
[15] Fix | Delete
success: function ( data, textStatus, XMLHttpRequest ) {
[16] Fix | Delete
// toggle main content field.
[17] Fix | Delete
if ( data ) {
[18] Fix | Delete
$( '#advanced-ads-ad-parameters' ).html( data ).trigger( 'paramloaded' )
[19] Fix | Delete
advads_maybe_textarea_to_tinymce( ad_type )
[20] Fix | Delete
}
[21] Fix | Delete
},
[22] Fix | Delete
error: function ( MLHttpRequest, textStatus, errorThrown ) {
[23] Fix | Delete
$( '#advanced-ads-ad-parameters' ).html( errorThrown )
[24] Fix | Delete
}
[25] Fix | Delete
} ).always( function ( MLHttpRequest, textStatus, errorThrown ) {
[26] Fix | Delete
jQuery( '#advanced-ad-type input[name^="advanced_ad"]' ).prop( 'disabled', false );
[27] Fix | Delete
} )
[28] Fix | Delete
}
[29] Fix | Delete
[30] Fix | Delete
$( document ).on( 'click', '#switch-to-adsense-type', function ( ev ) {
[31] Fix | Delete
ev.preventDefault()
[32] Fix | Delete
AdvancedAdsAdmin.AdImporter.adsenseCode = Advanced_Ads_Admin.get_ad_source_editor_text()
[33] Fix | Delete
$( '#advanced-ad-type-adsense' ).trigger( 'click' )
[34] Fix | Delete
$( this ).closest( 'li' ).addClass( 'hidden' )
[35] Fix | Delete
} )
[36] Fix | Delete
[37] Fix | Delete
$( document ).on( 'change', '#advanced-ad-type input', function () {
[38] Fix | Delete
var ad_type = $( this ).val()
[39] Fix | Delete
advads_load_ad_type_parameter_metabox( ad_type )
[40] Fix | Delete
} )
[41] Fix | Delete
[42] Fix | Delete
// trigger for ad injection after ad creation
[43] Fix | Delete
$( '#advads-ad-injection-box .advads-ad-injection-button' ).on( 'click', function () {
[44] Fix | Delete
var placement_type = this.dataset.placementType, // create new placement
[45] Fix | Delete
placement_slug = this.dataset.placementSlug, // use existing placement
[46] Fix | Delete
options = {}
[47] Fix | Delete
[48] Fix | Delete
if ( ! placement_type && ! placement_slug ) { return }
[49] Fix | Delete
[50] Fix | Delete
// create new placement
[51] Fix | Delete
if ( placement_type ) {
[52] Fix | Delete
// for content injection
[53] Fix | Delete
if ( 'post_content' === placement_type ) {
[54] Fix | Delete
var paragraph = prompt( advadstxt.after_paragraph_promt, 1 )
[55] Fix | Delete
if ( paragraph !== null ) {
[56] Fix | Delete
options.index = parseInt( paragraph, 10 )
[57] Fix | Delete
}
[58] Fix | Delete
}
[59] Fix | Delete
}
[60] Fix | Delete
$( '#advads-ad-injection-box .advads-loader' ).show()
[61] Fix | Delete
$( '#advads-ad-injection-box-placements' ).hide()
[62] Fix | Delete
$( 'body' ).animate( { scrollTop: $( '#advads-ad-injection-box' ).offset().top - 40 }, 1, 'linear' )
[63] Fix | Delete
[64] Fix | Delete
$.ajax( {
[65] Fix | Delete
type: 'POST',
[66] Fix | Delete
url: ajaxurl,
[67] Fix | Delete
data: {
[68] Fix | Delete
action: 'advads-ad-injection-content',
[69] Fix | Delete
placement_type: placement_type,
[70] Fix | Delete
placement_slug: placement_slug,
[71] Fix | Delete
ad_id: $( '#post_ID' ).val(),
[72] Fix | Delete
options: options,
[73] Fix | Delete
nonce: advadsglobal.ajax_nonce
[74] Fix | Delete
},
[75] Fix | Delete
success: function ( r, textStatus, XMLHttpRequest ) {
[76] Fix | Delete
if ( ! r ) {
[77] Fix | Delete
$( '#advads-ad-injection-box' ).html( 'an error occured' )
[78] Fix | Delete
return
[79] Fix | Delete
}
[80] Fix | Delete
[81] Fix | Delete
$( '#advads-ad-injection-box *' ).hide()
[82] Fix | Delete
// append anchor to placement message
[83] Fix | Delete
$( '#advads-ad-injection-message-placement-created .advads-placement-link' ).attr( 'href', $( '#advads-ad-injection-message-placement-created a' ).attr( 'href' ) + r )
[84] Fix | Delete
$( '#advads-ad-injection-message-placement-created, #advads-ad-injection-message-placement-created *' ).show()
[85] Fix | Delete
},
[86] Fix | Delete
error: function ( MLHttpRequest, textStatus, errorThrown ) {
[87] Fix | Delete
$( '#advads-ad-injection-box' ).html( errorThrown )
[88] Fix | Delete
}
[89] Fix | Delete
} ).always( function ( MLHttpRequest, textStatus, errorThrown ) {
[90] Fix | Delete
// jQuery( '#advanced-ad-type input').prop( 'disabled', false );
[91] Fix | Delete
} )
[92] Fix | Delete
} )
[93] Fix | Delete
[94] Fix | Delete
// activate general buttons
[95] Fix | Delete
$( '.advads-buttonset' ).advads_buttonset()
[96] Fix | Delete
// activate accordions
[97] Fix | Delete
if ( $.fn.accordion ) {
[98] Fix | Delete
$( '.advads-accordion' ).accordion( {
[99] Fix | Delete
active: false,
[100] Fix | Delete
collapsible: true,
[101] Fix | Delete
} )
[102] Fix | Delete
}
[103] Fix | Delete
[104] Fix | Delete
// AD OVERVIEW PAGE
[105] Fix | Delete
[106] Fix | Delete
$( '.advads-ad-list-tooltip' ).advads_tooltip( {
[107] Fix | Delete
content: function () {
[108] Fix | Delete
return jQuery( this ).find( '.advads-ad-list-tooltip-content' ).html()
[109] Fix | Delete
}
[110] Fix | Delete
} )
[111] Fix | Delete
// show edit icon in the last head column
[112] Fix | Delete
$( '.post-type-advanced_ads .wp-list-table thead th:last-of-type' ).append( $( '<span class="dashicons dashicons-edit"></span>' ).on( 'click', function () {
[113] Fix | Delete
$( '#show-settings-link' ).trigger( 'click' );
[114] Fix | Delete
} ) );
[115] Fix | Delete
[116] Fix | Delete
/**
[117] Fix | Delete
* Logic for placement list
[118] Fix | Delete
*/
[119] Fix | Delete
( () => {
[120] Fix | Delete
let selectedValue = '0';
[121] Fix | Delete
let searchTerm = '';
[122] Fix | Delete
const placementRows = jQuery( '.advads-placements-table tbody tr' );
[123] Fix | Delete
const showHidePlacementRow = callback => {
[124] Fix | Delete
placementRows.each( ( index, element ) => {
[125] Fix | Delete
const $row = jQuery( element );
[126] Fix | Delete
const rowData = $row.data( 'order' );
[127] Fix | Delete
[128] Fix | Delete
if (
[129] Fix | Delete
typeof rowData === 'undefined'
[130] Fix | Delete
|| typeof rowData['type'] === 'undefined'
[131] Fix | Delete
|| typeof rowData['name'] === 'undefined'
[132] Fix | Delete
) {
[133] Fix | Delete
$row.show();
[134] Fix | Delete
return;
[135] Fix | Delete
}
[136] Fix | Delete
[137] Fix | Delete
$row.toggle(
[138] Fix | Delete
( selectedValue === '0' || rowData['type'] === selectedValue )
[139] Fix | Delete
&& ( searchTerm === '' || rowData['name'].toLowerCase().indexOf( searchTerm.toLowerCase() ) !== - 1 )
[140] Fix | Delete
);
[141] Fix | Delete
} );
[142] Fix | Delete
};
[143] Fix | Delete
// filter placement by type
[144] Fix | Delete
jQuery( '.advads_filter_placement_type' ).on( 'change', function () {
[145] Fix | Delete
selectedValue = jQuery( this ).val();
[146] Fix | Delete
showHidePlacementRow();
[147] Fix | Delete
} );
[148] Fix | Delete
[149] Fix | Delete
// search placement by name
[150] Fix | Delete
jQuery( '.advads_search_placement_name' ).on( 'keyup', function () {
[151] Fix | Delete
searchTerm = this.value;
[152] Fix | Delete
showHidePlacementRow();
[153] Fix | Delete
} );
[154] Fix | Delete
} )();
[155] Fix | Delete
[156] Fix | Delete
/**
[157] Fix | Delete
* Filter ad/ad group selection in new placement form.
[158] Fix | Delete
*/
[159] Fix | Delete
( () => {
[160] Fix | Delete
const placementTypeRadios = document.querySelectorAll( '[name="advads[placement][type]"]' );
[161] Fix | Delete
[162] Fix | Delete
placementTypeRadios.forEach( radio => {
[163] Fix | Delete
radio.addEventListener( 'input', event => {
[164] Fix | Delete
jQuery( '[name="advads[placement][item]"]' ).attr( 'disabled', true );
[165] Fix | Delete
[166] Fix | Delete
wp.ajax.post( window.advadstxt.placements_allowed_ads.action, {
[167] Fix | Delete
'_ajax_nonce': window.advadstxt.placements_allowed_ads.nonce,
[168] Fix | Delete
'placement_type': event.target.value
[169] Fix | Delete
} )
[170] Fix | Delete
.done( response => {
[171] Fix | Delete
jQuery( '[name="advads[placement][item]"]' )
[172] Fix | Delete
.replaceWith( wp.template( 'advads-placement-ad-select' )( {items: Object.values( response.items )} ) );
[173] Fix | Delete
} );
[174] Fix | Delete
} );
[175] Fix | Delete
} );
[176] Fix | Delete
} )();
[177] Fix | Delete
[178] Fix | Delete
jQuery( '.advads-delete-tag' ).each( function () {
[179] Fix | Delete
jQuery( this ).on( 'click', function () {
[180] Fix | Delete
var r = confirm( window.advadstxt.delete_placement_confirmation );
[181] Fix | Delete
if ( r === true ) {
[182] Fix | Delete
var row = jQuery( this ).parents( '.advanced-ads-placement-row' );
[183] Fix | Delete
row.find( '.advads-placements-item-delete' ).prop( 'checked', true );
[184] Fix | Delete
row.data( 'touched', true );
[185] Fix | Delete
jQuery( '#advanced-ads-placements-form' ).submit();
[186] Fix | Delete
}
[187] Fix | Delete
} );
[188] Fix | Delete
} );
[189] Fix | Delete
[190] Fix | Delete
// sort placement by type order or name
[191] Fix | Delete
jQuery( '.advads-sort' ).on( 'click', function ( e ) {
[192] Fix | Delete
var sort = jQuery( this );
[193] Fix | Delete
var orderBy = sort.data( 'orderby' );
[194] Fix | Delete
var table = jQuery( '.advads-placements-table' );
[195] Fix | Delete
var rows = jQuery( '> tbody > tr', table );
[196] Fix | Delete
var links = jQuery( '> thead th > a', table );
[197] Fix | Delete
links.each( function () {
[198] Fix | Delete
jQuery( this ).removeClass( 'advads-placement-sorted' );
[199] Fix | Delete
} );
[200] Fix | Delete
sort.addClass( 'advads-placement-sorted' );
[201] Fix | Delete
rows.sort( function ( a, b ) {
[202] Fix | Delete
let orderA = jQuery( a ).data( 'order' );
[203] Fix | Delete
let orderB = jQuery( b ).data( 'order' );
[204] Fix | Delete
[205] Fix | Delete
if ( orderBy === 'type' ) {
[206] Fix | Delete
if ( orderA['words-between-repeats'] !== orderB['words-between-repeats'] ) {
[207] Fix | Delete
return orderA['words-between-repeats'] ? 1 : -1;
[208] Fix | Delete
}
[209] Fix | Delete
[210] Fix | Delete
if ( orderA['order'] === orderB['order'] ) {
[211] Fix | Delete
// Sort by index.
[212] Fix | Delete
if ( orderA['post-content-index'] && orderB['post-content-index'] && orderA['post-content-index'] !== orderB['post-content-index'] ) {
[213] Fix | Delete
return (orderA['post-content-index'] < orderB['post-content-index'] ) ? -1 : 1;
[214] Fix | Delete
}
[215] Fix | Delete
// Sort by name.
[216] Fix | Delete
return orderA['name'].localeCompare( orderB['name'], undefined, { numeric: true } );
[217] Fix | Delete
}
[218] Fix | Delete
return orderA['order'] - orderB['order'];
[219] Fix | Delete
}
[220] Fix | Delete
[221] Fix | Delete
return orderA['name'].localeCompare( orderB['name'], undefined, { numeric: true } );
[222] Fix | Delete
} );
[223] Fix | Delete
jQuery.each( rows, function ( index, row ) {
[224] Fix | Delete
table.append( row );
[225] Fix | Delete
} );
[226] Fix | Delete
var url = window.location.pathname + window.location.search;
[227] Fix | Delete
[228] Fix | Delete
if ( url.indexOf( 'orderby=' ) !== - 1 ) {
[229] Fix | Delete
url = url.replace( /\borderby=[0-9a-zA-Z_@.#+-]{1,50}\b/, 'orderby=' + orderBy );
[230] Fix | Delete
} else {
[231] Fix | Delete
url += '&orderby=' + orderBy;
[232] Fix | Delete
}
[233] Fix | Delete
window.history.replaceState( {orderby: orderBy}, document.title, url );
[234] Fix | Delete
e.preventDefault();
[235] Fix | Delete
} );
[236] Fix | Delete
[237] Fix | Delete
// show warning if Container ID option contains invalid characters
[238] Fix | Delete
$( '#advads-output-wrapper-id' ).on( 'keyup', function () {
[239] Fix | Delete
var id_value = $( this ).val()
[240] Fix | Delete
if ( /^[a-z-0-9]*$/.test( id_value ) ) {
[241] Fix | Delete
$( '.advads-output-wrapper-id-error' ).addClass( 'hidden' )
[242] Fix | Delete
} else {
[243] Fix | Delete
$( '.advads-output-wrapper-id-error' ).removeClass( 'hidden' )
[244] Fix | Delete
}
[245] Fix | Delete
} )
[246] Fix | Delete
[247] Fix | Delete
// group page: add ad to group
[248] Fix | Delete
$('.advads-group-add-ad button').on('click', function () {
[249] Fix | Delete
var $settings_row = $( this ).closest('.advads-ad-group-form'),
[250] Fix | Delete
$ad = $settings_row.find(
[251] Fix | Delete
'.advads-group-add-ad-list-ads option:selected'
[252] Fix | Delete
),
[253] Fix | Delete
$weight_selector = $settings_row
[254] Fix | Delete
.find('.advads-group-add-ad-list-weights')
[255] Fix | Delete
.last(),
[256] Fix | Delete
$ad_table = $settings_row.find('.advads-group-ads tbody');
[257] Fix | Delete
[258] Fix | Delete
const adVal = $ad.val().match(/\d+/g);
[259] Fix | Delete
let adUrl = '';
[260] Fix | Delete
[261] Fix | Delete
if (adVal) {
[262] Fix | Delete
adUrl = advancedAds.endpoints.editAd + adVal.pop();
[263] Fix | Delete
}
[264] Fix | Delete
[265] Fix | Delete
// add new row if does not already exist
[266] Fix | Delete
if (
[267] Fix | Delete
$ad.length &&
[268] Fix | Delete
$weight_selector.length &&
[269] Fix | Delete
!$ad_table.find('[name="' + $ad.val() + '"]').length
[270] Fix | Delete
) {
[271] Fix | Delete
$ad_table.append(
[272] Fix | Delete
$('<tr></tr>').append(
[273] Fix | Delete
$('<td></td>').html(
[274] Fix | Delete
`<a target="_blank" href="${adUrl}">${$ad.text()}</a>`
[275] Fix | Delete
),
[276] Fix | Delete
$('<td></td>').append(
[277] Fix | Delete
$weight_selector
[278] Fix | Delete
.clone()
[279] Fix | Delete
.val($weight_selector.val())
[280] Fix | Delete
.prop('name', $ad.val())
[281] Fix | Delete
),
[282] Fix | Delete
'<td><button type="button" class="advads-remove-ad-from-group button">x</button></td>'
[283] Fix | Delete
)
[284] Fix | Delete
);
[285] Fix | Delete
}
[286] Fix | Delete
});
[287] Fix | Delete
// group page: remove ad from group
[288] Fix | Delete
$( '#advads-ad-group-list' ).on( 'click', '.advads-remove-ad-from-group', function () {
[289] Fix | Delete
var $ad_row = $( this ).closest( 'tr' )
[290] Fix | Delete
[291] Fix | Delete
if ( $ad_row.data( 'ad-id' ) ) {
[292] Fix | Delete
// save the ad id, it is needed when this ad is not included in any other group
[293] Fix | Delete
$( '#advads-ad-group-list form' ).append(
[294] Fix | Delete
'<input type="hidden" name="advads-groups-removed-ads[]" value="' + $ad_row.data( 'ad-id' ) + '">'
[295] Fix | Delete
+ '<input type="hidden" name="advads-groups-removed-ads-gid[]" value="' + $ad_row.data( 'group-id' ) + '">'
[296] Fix | Delete
)
[297] Fix | Delete
}
[298] Fix | Delete
$ad_row.remove()
[299] Fix | Delete
} )
[300] Fix | Delete
// group page: handle switching of group types based on a class derrived from that type
[301] Fix | Delete
$( '.advads-ad-group-type input' ).on( 'click', function () {
[302] Fix | Delete
advads_show_group_options( $( this ) )
[303] Fix | Delete
} )
[304] Fix | Delete
[305] Fix | Delete
function advads_show_group_options ( el ) {
[306] Fix | Delete
// first, hide all options except title and type
[307] Fix | Delete
// iterate through all elements
[308] Fix | Delete
el.each( function () {
[309] Fix | Delete
var _this = jQuery( this )
[310] Fix | Delete
_this.parents( '.advads-ad-group-form' ).find( '.advads-option:not(.static)' ).hide()
[311] Fix | Delete
var current_type = _this.val()
[312] Fix | Delete
[313] Fix | Delete
// now, show only the ones corresponding with the group type
[314] Fix | Delete
_this.parents( '.advads-ad-group-form' ).find( '.advads-group-type-' + current_type ).show()
[315] Fix | Delete
} )
[316] Fix | Delete
}
[317] Fix | Delete
[318] Fix | Delete
// set default group options for earch group
[319] Fix | Delete
[320] Fix | Delete
advads_show_group_options( $( '.advads-ad-group-type input:checked' ) )
[321] Fix | Delete
[322] Fix | Delete
// show more than 3 ads when clicked on a link
[323] Fix | Delete
$( '.advads-group-ads-list-show-more' ).on( 'click', function () {
[324] Fix | Delete
$( this ).hide().parent().siblings( '.advads-ad-group-list-ads' ).children( 'div' ).show()
[325] Fix | Delete
} )
[326] Fix | Delete
[327] Fix | Delete
/**
[328] Fix | Delete
* SETTINGS PAGE
[329] Fix | Delete
*/
[330] Fix | Delete
[331] Fix | Delete
// automatically copy the first entered license key into all other empty fields
[332] Fix | Delete
$( '.advads-settings-tab-main-form .advads-license-key' ).on( 'blur', function () {
[333] Fix | Delete
// get number of license fields
[334] Fix | Delete
[335] Fix | Delete
var license_key = $( this ).val()
[336] Fix | Delete
[337] Fix | Delete
if ( '' === license_key ) {
[338] Fix | Delete
return
[339] Fix | Delete
}
[340] Fix | Delete
[341] Fix | Delete
var license_fields = $( '.advads-settings-tab-main-form .advads-license-key' )
[342] Fix | Delete
var license_fields_without_value = []
[343] Fix | Delete
[344] Fix | Delete
// count license fields without value
[345] Fix | Delete
license_fields.each( function ( i, el ) {
[346] Fix | Delete
if ( '' === $( el ).val() ) {
[347] Fix | Delete
license_fields_without_value.push( el )
[348] Fix | Delete
}
[349] Fix | Delete
} )
[350] Fix | Delete
[351] Fix | Delete
// if there is only one field filled then take its content (probably a license key) and add it into the other fields
[352] Fix | Delete
if ( license_fields.length === (license_fields_without_value.length + 1) ) {
[353] Fix | Delete
$.each( license_fields_without_value, function ( i, el ) {
[354] Fix | Delete
$( el ).val( license_key )
[355] Fix | Delete
} )
[356] Fix | Delete
}
[357] Fix | Delete
[358] Fix | Delete
} );
[359] Fix | Delete
[360] Fix | Delete
// activate licenses
[361] Fix | Delete
$( '.advads-license-activate' ).on( 'click', function () {
[362] Fix | Delete
[363] Fix | Delete
var button = $( this )
[364] Fix | Delete
[365] Fix | Delete
if ( ! this.dataset.addon ) {
[366] Fix | Delete
return;
[367] Fix | Delete
}
[368] Fix | Delete
[369] Fix | Delete
advads_disable_license_buttons( true )
[370] Fix | Delete
[371] Fix | Delete
var query = {
[372] Fix | Delete
action: 'advads-activate-license',
[373] Fix | Delete
addon: this.dataset.addon,
[374] Fix | Delete
pluginname: this.dataset.pluginname,
[375] Fix | Delete
optionslug: this.dataset.optionslug,
[376] Fix | Delete
license: $( this ).parents( 'td' ).find( '.advads-license-key' ).val(),
[377] Fix | Delete
security: $( '#advads-licenses-ajax-referrer' ).val()
[378] Fix | Delete
}
[379] Fix | Delete
[380] Fix | Delete
// show loader
[381] Fix | Delete
$( '<span class="spinner advads-spinner"></span>' ).insertAfter( button )
[382] Fix | Delete
[383] Fix | Delete
// send and close message
[384] Fix | Delete
$.post( ajaxurl, query, function ( r ) {
[385] Fix | Delete
// remove spinner
[386] Fix | Delete
$( 'span.spinner' ).remove()
[387] Fix | Delete
var parent = button.parents( 'td' )
[388] Fix | Delete
[389] Fix | Delete
if ( r === '1' ) {
[390] Fix | Delete
const key = 'advanced-ads-licenses[' + query.addon + ']';
[391] Fix | Delete
advadsTermination.setInitialValue( key, document.querySelector( '[name="' + key + '"]' ) );
[392] Fix | Delete
parent.find( '.advads-license-activate-error' ).remove()
[393] Fix | Delete
parent.find( '.advads-license-deactivate' ).show()
[394] Fix | Delete
button.fadeOut()
[395] Fix | Delete
parent.find( '.advads-license-activate-active' ).fadeIn()
[396] Fix | Delete
parent.find( 'input' ).prop( 'readonly', 'readonly' )
[397] Fix | Delete
advads_disable_license_buttons( false )
[398] Fix | Delete
} else if ( r === 'ex' ) {
[399] Fix | Delete
var input = parent.find( 'input.advads-license-key' )
[400] Fix | Delete
var link = parent.find( 'a.advads-renewal-link' )
[401] Fix | Delete
if ( input && link ) {
[402] Fix | Delete
var license_key = input.val()
[403] Fix | Delete
var href = link.prop( 'href' )
[404] Fix | Delete
link.prop( 'href', href.replace( '%LICENSE_KEY%', license_key ) )
[405] Fix | Delete
}
[406] Fix | Delete
parent.find( '.advads-license-activate-error' ).remove()
[407] Fix | Delete
parent.find( '.advads-license-expired-error' ).show()
[408] Fix | Delete
advads_disable_license_buttons( false )
[409] Fix | Delete
} else {
[410] Fix | Delete
parent.find( '.advads-license-activate-error' ).show().html( r )
[411] Fix | Delete
advads_disable_license_buttons( false )
[412] Fix | Delete
}
[413] Fix | Delete
} )
[414] Fix | Delete
} );
[415] Fix | Delete
[416] Fix | Delete
// deactivate licenses
[417] Fix | Delete
$( '.advads-license-deactivate' ).on( 'click', function () {
[418] Fix | Delete
[419] Fix | Delete
var button = $( this )
[420] Fix | Delete
[421] Fix | Delete
if ( ! this.dataset.addon ) { return }
[422] Fix | Delete
[423] Fix | Delete
advads_disable_license_buttons( true )
[424] Fix | Delete
[425] Fix | Delete
var query = {
[426] Fix | Delete
action: 'advads-deactivate-license',
[427] Fix | Delete
addon: this.dataset.addon,
[428] Fix | Delete
pluginname: this.dataset.pluginname,
[429] Fix | Delete
optionslug: this.dataset.optionslug,
[430] Fix | Delete
security: $( '#advads-licenses-ajax-referrer' ).val()
[431] Fix | Delete
}
[432] Fix | Delete
[433] Fix | Delete
// show loader
[434] Fix | Delete
$( '<span class="spinner advads-spinner"></span>' ).insertAfter( button )
[435] Fix | Delete
[436] Fix | Delete
// send and close message
[437] Fix | Delete
$.post( ajaxurl, query, function ( r ) {
[438] Fix | Delete
// remove spinner
[439] Fix | Delete
$( 'span.spinner' ).remove()
[440] Fix | Delete
[441] Fix | Delete
if ( r === '1' ) {
[442] Fix | Delete
button.siblings( '.advads-license-activate-error' ).hide()
[443] Fix | Delete
button.siblings( '.advads-license-activate-active' ).hide()
[444] Fix | Delete
button.siblings( '.advads-license-activate' ).show()
[445] Fix | Delete
button.siblings( 'input' ).prop( 'readonly', false )
[446] Fix | Delete
button.fadeOut()
[447] Fix | Delete
advads_disable_license_buttons( false )
[448] Fix | Delete
} else if ( r === 'ex' ) {
[449] Fix | Delete
button.siblings( '.advads-license-activate-error' ).hide()
[450] Fix | Delete
button.siblings( '.advads-license-activate-active' ).hide()
[451] Fix | Delete
button.siblings( '.advads-license-expired-error' ).show()
[452] Fix | Delete
button.siblings( 'input' ).prop( 'readonly', false )
[453] Fix | Delete
button.fadeOut()
[454] Fix | Delete
advads_disable_license_buttons( false )
[455] Fix | Delete
} else {
[456] Fix | Delete
console.log( r )
[457] Fix | Delete
button.siblings( '.advads-license-activate-error' ).show().html( r )
[458] Fix | Delete
button.siblings( '.advads-license-activate-active' ).hide()
[459] Fix | Delete
advads_disable_license_buttons( false )
[460] Fix | Delete
}
[461] Fix | Delete
} )
[462] Fix | Delete
} );
[463] Fix | Delete
[464] Fix | Delete
// toggle license buttons – disable or not
[465] Fix | Delete
function advads_disable_license_buttons ( disable = true ) {
[466] Fix | Delete
var buttons = $( 'button.advads-license-activate, button.advads-license-deactivate' ) // all activation buttons
[467] Fix | Delete
// disable all buttons to prevent issues when users try to enable multiple licenses at the same time
[468] Fix | Delete
if ( disable ) {
[469] Fix | Delete
buttons.attr( 'disabled', 'disabled' )
[470] Fix | Delete
} else {
[471] Fix | Delete
buttons.removeAttr( 'disabled' )
[472] Fix | Delete
}
[473] Fix | Delete
}
[474] Fix | Delete
[475] Fix | Delete
[476] Fix | Delete
[477] Fix | Delete
/**
[478] Fix | Delete
* There are two formats of URL supported:
[479] Fix | Delete
* admin.php?page=advanced-ads-settings#top#tab_id go to the `tab_id`
[480] Fix | Delete
* admin.php?page=advanced-ads-settings#tab_id__anchor go to the `tab_id`, scroll to the `anchor`
[481] Fix | Delete
*/
[482] Fix | Delete
[483] Fix | Delete
/**
[484] Fix | Delete
* Extract the active tab and anchor from the URL hash.
[485] Fix | Delete
*
[486] Fix | Delete
* @var {string} hash The URL hash.
[487] Fix | Delete
*
[488] Fix | Delete
* @return {{tab: string, anchor: string}}
[489] Fix | Delete
*/
[490] Fix | Delete
function advads_extract_tab( hash ) {
[491] Fix | Delete
var hash_parts = hash.replace( /^#top(#|%23)/, '' ).replace( /(#|%23)/, '' ).split( '__' );
[492] Fix | Delete
[493] Fix | Delete
return {
[494] Fix | Delete
'tab': hash_parts[0] || jQuery( '.advads-tab' ).attr( 'id' ),
[495] Fix | Delete
'anchor': hash_parts[1]
[496] Fix | Delete
};
[497] Fix | Delete
}
[498] Fix | Delete
[499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function