Commit inicial - WordPress Análisis de Precios Unitarios

- WordPress core y plugins
- Tema Twenty Twenty-Four configurado
- Plugin allow-unfiltered-html.php simplificado
- .gitignore configurado para excluir wp-config.php y uploads

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
root
2025-11-03 21:04:30 -06:00
commit a22573bf0b
24068 changed files with 4993111 additions and 0 deletions

View File

@@ -0,0 +1,167 @@
function feedOriginInitAjax(element) {
let slug = element.getAttribute("data-slug");
element.classList.add('disabled');
if (element.getAttribute("data-form") === "uncategorized") {
var form_feed_origin = element.parentElement;
} else {
var form_feed_origin = document.getElementById("form-feed-origin-" + slug);
}
let data = new FormData(form_feed_origin);
data.append( 'license' , wpdbt_admin_vars.data.license_key);
data.append( 'license_url' , wpdbt_admin_vars.data.license_url);
data.append( 'version' , wpdbt_admin_vars.data.version);
data.append( 'comercial' , true);
if (element.classList.contains("vote")) {
data.append("vote", element.getAttribute("data-type"));
document.getElementById("container-votes-" + slug).classList.add("d-none");
}
if(slug == 'uncategorized-group' || slug == 'uncategorized-individual'){
data.append('mode','uncategorized');
let split_slug = data.get('slug').split('$');
data.set('slug', split_slug[0]);
// Search extra data plugin
let origin = null;
let origin_type = data.get('type');
let origin_slug = data.get('slug');
// plugins and themes is set when load data is ending
if(origin_type == 'plugin'){
origin = Object.values(plugins).find( plugin => plugin.slug === origin_slug );
}
if(origin_type == 'theme'){
origin = Object.values(themes).find( theme => theme.slug === origin_slug );
}
if(origin != null){
data.append('marketplace', origin.marketplace);
data.append('origin_name', origin.name);
data.append('origin_author', origin.author);
data.append('origin_author_name', origin.author_name);
data.append('origin_author_url', origin.author_url);
data.append('origin_description', origin.description);
data.append('origin_version', origin.version);
}
}else{
data.append('mode','votes');
data.set('name', '["' + data.get('name') + '"]');
data.set('prefix', '["' + data.get('prefix') + '"]');
}
fetch(wpdbt_admin_vars.data.api_domain + "/api/v2/feedback", {
method: "POST",
body: data,
})
.then(function (response) {
return response.json();
})
.then(function (result) {
let element_text = document.getElementById('feedback_message-' + slug);
if(result.success === false){
buildResponse(element_text,result.message, "bg-light-red", slug)
element.classList.remove('disabled');
return;
}
if(result.success === true){
var obj_names = JSON.parse(data.get("name"));
var obj_prefixes = [];
if(wpdbt_admin_vars.data.current_page == 'tables'){
obj_prefixes = JSON.parse(data.get("prefix"));
}
Object.keys(obj_names).forEach(key => {
var name_element = '';
if(wpdbt_admin_vars.data.current_page == 'tables' && obj_prefixes[key] == true || obj_prefixes[key] == 'true'){
name_element = wpdbt_admin_vars.data.prefix + obj_names[key];
}else{
name_element = obj_names[key];
}
list.get('name',name_element)[0]._values.feedback = true;
});
buildResponse(element_text,result.message, "bg-light-green", slug)
feedbackUserInitAjax(data);
element.classList.remove('disabled');
return;
}
})
.catch(function (error) {
console.error(error);
let element_text = document.getElementById('feedback_message-' + slug);
buildResponse(element_text,'ERROR', "bg-light-red", slug)
element.classList.remove('disabled');
return;
});
}
function buildResponse(element_text,message, bg_class, slug){
element_text.innerHTML = message;
document.getElementById("container-feedback-" + slug).classList.add(bg_class);
document.getElementById("container-feedback-" + slug).classList.remove("d-none");
}
function feedbackUserInitAjax(data) {
jQuery.ajax({
type: "POST",
url: ajax_var.url,
data:
"action=" +
ajax_var.action +
"&nonce=" +
ajax_var.nonce +
"&name=" +
data.get("name") +
"&prefix=" +
data.get("prefix") +
"&type=" +
data.get("type") +
"&section=" +
data.get("section") +
"&vote=" +
data.getAll("vote")[1] ?? null,
success: function (result) {
console.log("success");
},
error: function (jqXHR, textStatus, errorThrown) {
console.log(jqXHR.responseText);
},
done: function (result) {
console.log("done:");
},
});
}

View File

@@ -0,0 +1,89 @@
var counter_check = 1;
sleep(3000).then(() => {
checkFinishPriorityScanner();
});
function checkFinishPriorityScanner() {
counter_check++;
jQuery.ajax({
type: "post",
url: ajax_var_check_force_scanner.url,
data:
"action=" +
ajax_var_check_force_scanner.action +
"&nonce=" +
ajax_var_check_force_scanner.nonce,
success: function (response) {
response = JSON.parse(response);
if(response.cron_status == 'success'){
document.getElementById('status-indicator-cron-execute').style.color = '#bef6e2';
}
if(response.cron_status == 'error'){
document.getElementById('status-indicator-cron-execute').style.color = '#FFE6E8';
set_error(ajax_var_check_force_scanner.translations.errors.cron);
return;
}else{
if( counter_check >= 80 ){
document.getElementById('status-indicator-first-scanner').style.color = '#FFE6E8';
set_error(ajax_var_check_force_scanner.translations.errors.attempts);
return;
}
if (response.force_scanner == "NO") {
set_success(ajax_var_check_force_scanner.translations.success.scanner);
sleep(1500).then(() => {
location.reload();
});
}
if (response.force_scanner == "YES") {
sleep(3000).then(() => {
document.getElementById('status-indicator-counter').innerHTML = counter_check;
checkFinishPriorityScanner();
});
}
}
},
error: function (jqXHR, textStatus, errorThrown) {
console.log("error");
console.log(errorThrown);
console.log(jqXHR.responseText);
},
});
}
function sleep(time) {
return new Promise((resolve) => setTimeout(resolve, time));
}
function set_error(message){
// Change image
document.getElementById('image-scanner-execute').src = ajax_var_check_force_scanner.image_error;
// Change error message
document.getElementById('error-message').innerHTML = message;
document.getElementById('error-message').style.visibility = 'initial';
}
function set_success(message){
// Change dot status
document.getElementById('status-indicator-first-scanner').style.color = '#bef6e2';
// Change error message
document.getElementById('success-message').innerHTML = message;
document.getElementById('success-message').style.visibility = 'initial';
}

View File

@@ -0,0 +1,62 @@
var load_status = 0;
var elem_load = document.getElementById("progress_data_bar");
var span_current_load_step = document.getElementById("load_current_step");
var span_load_total_step = document.getElementById("load_total_step");
var span_load_total_records = document.getElementById("load_total_records");
var span_load_indicator_step = document.getElementById("load_indicator_step");
if(page != 'general'){
init_load_data_status();
}else{
elem_load.style.width = "100%";
}
var first_call = true;
function init_load_data_status() {
var interval = setInterval(function () {
if (load_status == 100 && first_call != true) {
clearInterval(interval);
} else {
jQuery.ajax({
timeout: 100000,
type: "post",
url: ajax_var_load_status.url,
data:
"action=" +
ajax_var_load_status.action +
"&nonce=" +
ajax_var_load_status.nonce,
success: function (response) {
first_call = false;
response = JSON.parse(response);
span_load_total_records.innerHTML = response.data_loop.total;
if(response.cache === true){
span_load_indicator_step.innerHTML = ' (cache)'
}else{
span_load_total_step.innerHTML = response.data_loop.loops;
span_current_load_step.innerHTML = response.data_loop.current_loop;
}
if (load_status != 100) {
let current_porcent = response.porcent;
elem_load.style.width = current_porcent + "%";
load_status = current_porcent;
} else {
elem_load.style.width = 100 + "%";
}
},
error: function (jqXHR, textStatus, errorThrown) {
console.log("error");
console.log(errorThrown);
console.log(jqXHR.responseText);
},
});
}
}, 1000);
}

View File

@@ -0,0 +1,137 @@
const queryString = window.location.search;
const urlParams = new URLSearchParams(queryString);
const page = urlParams.get("page");
var btn_scanner = document.getElementById('scanner-btn');
var btn_remove_all_transients = document.getElementById('btn_remove_all_transients');
init_load_data();
function init_load_data() {
jQuery.ajax({
timeout: 100000,
type: "post",
url: ajax_var_load_data.url,
data:
"action=" +
ajax_var_load_data.action +
"&nonce=" +
ajax_var_load_data.nonce +
"&page=" +
page,
success: function (response) {
var response = JSON.parse(response);
if( response.status_loading.data_loop.is_finish == true || response.status_loading.cache == true){
init_display_data(response);
btn_scanner.disabled = false;
btn_remove_all_transients.disabled = false;
}else{
init_load_data();
}
},
error: function (jqXHR, textStatus, errorThrown) {
console.log("error");
console.log(errorThrown);
console.log(jqXHR.responseText);
},
});
}
function init_display_data(response){
if(wpdbt_admin_vars.data.current_page == 'options' || wpdbt_admin_vars.data.current_page == 'transients'){
display_size(response.size)
}
// This set to load data is ending
plugins = response.plugins;
themes = response.themes;
var list_values = response.data;
var choices_values = response.origins;
list.add(list_values, function (items) {
console.log("All " + items.length + " were added!");
btn_all.innerHTML += "(" + items.length + ")";
var count_uncategorized = 0;
var count_plugin = 0;
var count_theme = 0;
var count_core = 0;
let origin_type = '';
items.forEach(function (item) {
if(typeof item._values.origin == 'undefined'){
// Do something
}else{
origin_type = item._values.origin.type;
if (origin_type == "uncategorized" || item._values.origin.warning === 'yes' ) {
count_uncategorized++;
}
if (origin_type == "plugin") {
count_plugin++;
}
if (origin_type == "theme") {
count_theme++;
}
if (origin_type == "core") {
count_core++;
}
}
});
btn_uncategorized.innerHTML += "(" + count_uncategorized + ")";
btn_plugin.innerHTML += "(" + count_plugin + ")";
btn_theme.innerHTML += "(" + count_theme + ")";
btn_core.innerHTML += "(" + count_core + ")";
load_status = 100;
elem_load.style.width = 100 + "%";
filterAll();
});
var current_number_page = document.querySelector("li.active a");
var current_number = current_number_page.getAttribute("data-i");
// Set get parameter filter
let current_element = select_choice._currentState.items.find(
(selection) => selection.active === true
);
select_choice.setChoices(choices_values);
if($_GET_origin != null && $_GET_origin != encodeString(current_element.value)){
select_choice._currentState.choices.forEach( function(valor, indice, array) {
if(encodeString(array[indice].value) === $_GET_origin){
select_choice.setChoiceByValue(array[indice].value);
}
});
}
}
function display_size(size){
let el_size_total = document.getElementById('info-size-total');
let el_size_autoload = document.getElementById('info-size-autoload');
el_size_total.innerHTML = size['total']['format']['size'] + size['total']['format']['type'];
el_size_autoload.classList.add(size['autoload']['indicator']);
el_size_autoload.innerHTML = size['autoload']['format']['size'] + size['autoload']['format']['type'];
}

View File

@@ -0,0 +1,32 @@
function remove_all_transients(){
let form = document.getElementById('remove_all_transients')
let data = new FormData(form);
let btn_remove_all_transients = document.getElementById('btn_remove_all_transients');
let btn_remove_all_transients_loader = document.querySelector('button#btn_remove_all_transients #loader');
btn_remove_all_transients.disabled = true;
btn_remove_all_transients_loader.style.visibility = 'initial';
jQuery.ajax({
type: "POST",
url: ajax_var.url,
data:
"action=" +
ajax_var.action +
"&nonce=" +
ajax_var.nonce +
"&remove=" +
data.get("remove"),
success: function (result) {
result = JSON.parse(result);
window.location.href = result;
},
error: function (jqXHR, textStatus, errorThrown) {
console.log(jqXHR.responseText);
},
done: function (result) {
console.log("done:");
},
});
}

View File

@@ -0,0 +1,77 @@
jQuery(document).ready(function ($) {
var btn_scanner = $("#scanner-btn");
var scanner_container = $("#scanner-feedback");
var scanner_container_loading = $("#scanner-feedback-not-loading");
var scanner_text = $("#scanner-text");
btn_scanner.on("click", function () {
btn_scanner.prop("disabled", true);
scanner_container.removeClass("d-none");
scanner_container_loading.addClass("d-none");
scannerInitAjax(true);
});
function scannerInitAjax(first_call) {
jQuery.ajax({
type: "post",
url: ajax_var_scanner.url,
data: "action=" + ajax_var_scanner.action + "&nonce=" + ajax_var_scanner.nonce + "&first_call=" + first_call + "&license=" + wpdbt_admin_vars.data.license_key,
timeout: 100000,
success: function (result) {
scannerResponse(result);
},
error: function (jqXHR, textStatus, errorThrown) {
console.log(jqXHR.responseText);
},
});
}
function scannerResponse(result) {
if (result != "") {
try {
result = JSON.parse(result)
scanner_text.text(result.message);
} catch (error) {
console.error(error);
scanner_text.text('ERROR');
}
if (result.status == "active") {
scannerInitAjax(false);
}
if (result.status == "success" || result.status == "error") {
var counter = 5;
var interval = setInterval(function () {
counter--;
scanner_text.text(wpdbt_admin_vars.data.translations.refreshing + ' ' + counter);
if (counter == 0) {
scanner_container.addClass("d-none");
scanner_container_loading.removeClass("d-none")
btn_scanner.prop("disabled", false);
clearInterval(interval);
location.reload();
}
}, 1000);
}
} else {
scannerInitAjax(false);
}
}
});