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,331 @@
/**
* CSS for the metabox "Connect Options"
*
* @author Paul Kashtanoff <paul@byonepress.com>
* @copyright (c) 2015, OnePress Ltd
*
* @package optinpanda
* @since 1.0.0
*/
#OPanda_ConnectOptionsMetaBox {
display: block;
}
#OPanda_ConnectOptionsMetaBox .inside,
#OPanda_ConnectOptionsMetaBox .factory-form-metabox {
padding-bottom: 0px;
}
.opanda-connect-buttons .opanda-button input {
outline: none !important;
}
#OPanda_ConnectOptionsMetaBox select {
width: auto;
}
.opanda-connect-buttons .opanda-button input:disabled {
cursor: default;
}
#OPanda_ConnectOptionsMetaBox .factory-separator {
border: 0px;
border-top: 1px solid #f1f1f1;
}
/* connect buttons */
#OPanda_ConnectOptionsMetaBox .opanda-connect-buttons {
padding: 0 0 10px 0;
overflow: auto;
background: #f7f7f7;
margin: 0 0 0 -22px;
padding: 30px 22px 32px 22px;
position: relative;
width: 100%;
-moz-box-sizing: content-box;
box-sizing: content-box;
white-space: nowrap;
}
.opanda-connect-buttons .opanda-button {
width: 178px;
display: inline-block;
vertical-align: top;
padding: 3px 0 0 0;
-moz-box-sizing: border-box;
box-sizing: border-box;
border-left: 1px solid #f1f1f1;
border-right: 1px solid #f1f1f1;
box-shadow: 0 2px 3px rgba(0,0,0,0.03);
background-color: #e1e1e1;
color: #111;
}
.opanda-connect-buttons .opanda-button + .opanda-button {
border-left: 0px;
margin-left: 15px;
}
.opanda-connect-buttons .opanda-inner-wrap {
background-color: #fff;
}
.opanda-connect-buttons .opanda-button-facebook {
background: #989de1;
}
.opanda-connect-buttons .opanda-button-twitter {
background: #55acee;
}
.opanda-connect-buttons .opanda-button-google {
background: #f47665;
}
.opanda-connect-buttons .opanda-button-linkedin {
background: #286b8d;
}
.opanda-connect-buttons .opanda-button-email {
background: #9faeae;
}
.opanda-connect-buttons .opanda-button-title {
display: block;
font-size: 14px;
line-height: 16px;
border-bottom: 1px solid #f5f5f5;
padding: 14px 15px;
}
.opanda-connect-buttons .opanda-button-title > * {
display: inline-block;
vertical-align: bottom;
}
.opanda-connect-buttons .opanda-button-title span + span {
margin-left: 5px;
}
.opanda-connect-buttons .opanda-button-title {
position: relative;
}
/* erorrs */
.opanda-connect-buttons .opanda-error {
display: none;
position: relative;
}
.opanda-connect-buttons .opanda-error i {
cursor: help;
color: #f47665;
}
.opanda-connect-buttons .opanda-error .opanda-error-text,
.opanda-connect-buttons .opanda-actions-disabled .opanda-error-text {
display: none;
position: absolute;
width: 300px;
background-color: rgba(0,0,0,0.8);
white-space: normal;
z-index: 10;
padding: 10px 12px 12px 12px;
font-weight: normal;
line-height: 150%;
border-radius: 4px;
color: #fff;
font-size: 13px;
margin-top: 5px;
}
.opanda-connect-buttons .opanda-error-text a {
color: #fff !important;
font-weight: bold;
}
.opanda-connect-buttons .opanda-button-title:hover .opanda-error-text {
display: block;
}
.opanda-connect-buttons .opanda-has-error .opanda-checkbox {
display: none;
}
.opanda-connect-buttons .opanda-has-error .opanda-button-title {
cursor: default;
}
.opanda-connect-buttons .opanda-has-error .opanda-error {
display: inline-block;
}
.opanda-connect-buttons .opanda-actions,
.opanda-connect-buttons .opanda-actions-disabled {
padding: 8px 15px 12px 15px;
margin: 0px;
}
.opanda-connect-buttons .opanda-actions-disabled {
border-top: 1px solid #f5f5f5;
background-color: #fafafa;
padding-top: 10px;
position: relative;
}
.opanda-connect-buttons .opanda-actions-disabled input {
cursor: no-drop !important;
}
.opanda-connect-buttons .opanda-actions-disabled .opanda-error-text {
display: none;
left: 100%;
margin-left: -2px;
top: -30px;
}
.opanda-connect-buttons .opanda-actions-disabled .opanda-error-wrap {
position: relative;
padding-right: 20px;
}
.opanda-connect-buttons .opanda-actions-disabled .opanda-error-wrap:hover .opanda-error-text {
display: block;
}
.opanda-connect-buttons .opanda-actions-disabled .opanda-error-wrap input {
margin-top: 0px;
}
.opanda-connect-buttons .opanda-action {
margin-bottom: 0px;
padding-bottom: 6px;
}
.opanda-connect-buttons .opanda-action > * {
display: inline-block;
vertical-align: bottom;
}
.opanda-connect-buttons .opanda-action .opanda-action-link {
text-decoration: none;
color: #111;
margin-left: 5px;
text-transform: capitalize;
border-bottom: 1px dashed #aaa;
outline: none;
box-shadow: none;
}
.opanda-connect-buttons .opanda-action.opanda-hover .opanda-action-link {
border-bottom: 1px dashed #dfdfbd;
background-color: #ffffdd;
}
.opanda-connect-buttons .opanda-action.opanda-on .opanda-action-link {
font-weight: bold;
color: #0074a2;
border-bottom: 1px dotted #0074a2;
}
.opanda-connect-buttons .opanda-button.opanda-off {
background-color: #e1e1e1;
color: #999;
}
.opanda-connect-buttons .opanda-button.opanda-off .opanda-inner-wrap {
background-color: #f9f9f9;
}
.opanda-connect-buttons .opanda-button.opanda-off .opanda-action-link,
.opanda-connect-buttons .opanda-button.opanda-off input[type=checkbox]:checked:before {
color: #999;
}
.opanda-connect-buttons .opanda-button.opanda-off input:focus {
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
}
.opanda-connect-buttons .opanda-button.opanda-off .opanda-button-title input {
border-color: #aaa;
}
.opanda-connect-buttons .opanda-button.opanda-off .opanda-action .opanda-action-link {
color: #bbb;
border-bottom: 1px dashed #eee;
cursor: default;
}
.opanda-connect-buttons .opanda-button.opanda-off .opanda-action.opanda-hover .opanda-action-link {
background-color: transparent;
border-bottom: 1px dashed #eee;
}
/* premium errors */
.opanda-connect-buttons .opanda-error-premium .opanda-error-text {
width: 270px;
padding: 0px;
background-color: transparent;
}
.opanda-connect-buttons .opanda-error-premium i {
position: relative;
top: 1px;
font-size: 16px;
color: #777;
}
.opanda-connect-buttons .opanda-premium-note {
margin: 0px;
position: static;
width: 100%;
border: 0px;
}
.opanda-connect-buttons .opanda-premium-note .fa {
color: #fff;
}
/* connect buttons options */
#OPanda_ConnectOptionsMetaBox .opanda-connect-buttons-options {
background-color: #fff;
margin: 0 -22px 0 -22px;
padding: 38px 22px 26px 22px;
position: relative;
width: 100%;
-moz-box-sizing: content-box;
box-sizing: content-box;
border-top: 1px solid #eaeaea;
}
.opanda-connect-buttons-options.opanda-off {
display: none;
}
.opanda-connect-buttons-options .control-label {
max-width: 184px !important;
}
.opanda-connect-buttons-options .control-group {
max-width: 800px !important;
}
.opanda-connect-buttons-options .opanda-header {
margin-bottom: 20px;
}
.opanda-connect-buttons-options .opanda-header .opanda-inner-wrap {
background-color: #f8f8f8;
padding: 9px 9px 7px 9px;
position: relative;
border-left: 4px solid #f1f1f1;
}
.opanda-connect-buttons-options .opanda-header strong {
display: block;
font-size: 16px;
}
.opanda-connect-buttons-options .opanda-header p {
margin: 0px;
}
.opanda-connect-buttons-options .opanda-header strong + p {
margin-top: 5px;
}
.factory-control-subscribe_mode .factory-hints,
.factory-control-subscribe_delivery .factory-hints {
vertical-align: top;
color: #737373;
width: auto;
max-width: 500px;
position: relative;
top: -1px;
border-left: 1px solid #999;
padding: 0 0 0 9px;
margin: 10px 0 0 5px;
background: transparent;
}
.factory-control-subscribe_mode .factory-hints .factory-hint,
.factory-control-subscribe_delivery .factory-hints .factory-hint {
background: transparent;
padding: 0px;
margin-top: 0px;
}

View File

@@ -0,0 +1,452 @@
if ( !window.bizpanda ) window.bizpanda = {};
if ( !window.bizpanda.connectOptions ) window.bizpanda.connectOptions = {};
(function($){
window.bizpanda.connectOptions = {
init: function( item ) {
var self = this;
this.item = $('#opanda_item').val();
this.$control = $(".opanda-connect-buttons");
this.$buttons = this.$control.find(".opanda-button");
this.$actions = this.$control.find(".opanda-action");
this.$result = $("#opanda_connect_buttons");
$(window).resize(function(){ self.adjustHeights(); });
self.adjustHeights();
self.hideEmptyDisabledActions();
this.initButtons();
this.setupEvents();
$.bizpanda.filters.add('opanda-preview-options', function( options ){
var extraOptions = self.getConnectOptions();
return $.extend(true, options, extraOptions);
});
var hasDeliveryChoice = $("#opanda_subscribe_delivery").length;
var $deliveryOptions = $("#opanda-delivery-options");
var $confirmationEmail = $("#opanda-confirmation-email");
var $deliverySelect = $("#opanda_subscribe_delivery");
$("#opanda_subscribe_mode").change(function(){
var value = $(this).val();
if ( value === 'double-optin' || value === 'quick-double-optin' ) {
if ( hasDeliveryChoice ) {
$deliveryOptions.fadeIn();
var delivery = $deliverySelect.val();
if ( delivery === 'wordpress' ) $confirmationEmail.fadeIn();
}
else $("#opanda-confirmation-email").fadeIn();
} else {
$("#opanda-delivery-options").hide();
$("#opanda-confirmation-email").hide();
}
}).change();
if ( hasDeliveryChoice ) {
$("#opanda_subscribe_delivery").change(function(){
var value = $(this).val();
if ( value === 'wordpress' && ($confirmationEmail.css('display') == 'block') ) {
$("#opanda-confirmation-email").fadeIn();
} else {
$("#opanda-confirmation-email").hide();
}
}).change();
}
},
getConnectOptions: function() {
var gerOrder = function( fieldId ) {
var actions = $(fieldId).val();
return actions ? actions.split(",") : [];
};
var order = gerOrder("#opanda_connect_buttons");
var emailIndex = $.inArray( 'email', order );
if ( emailIndex > -1 ) { order.splice(emailIndex, 1); }
var groups = ( emailIndex > -1 )
? ['connect-buttons', 'subscription']
: ['connect-buttons'];
var optinMode = $('#opanda_subscribe_mode').val();
var options = {
groups: {
order: groups
},
terms: window.opanda_terms,
privacyPolicy: window.opanda_privacy_policy,
connectButtons: {
order: order,
facebook: {
socialProxy: window.facebook_social_proxy,
actions: gerOrder('#opanda_facebook_actions'),
},
twitter: {
socialProxy: window.twitter_social_proxy,
actions: gerOrder('#opanda_twitter_actions'),
follow: {
user: $("#opanda_twitter_follow_user").val(),
notifications: $("#opanda_twitter_follow_notifications").is(':checked')
},
tweet: {
message: $("#opanda_twitter_tweet_message").val()
}
},
google: {
socialProxy: window.google_social_proxy,
actions: gerOrder('#opanda_google_actions'),
youtubeSubscribe: {
channelId: $("#opanda_google_youtube_channel_id").val()
}
},
linkedin: {
socialProxy: window.linkedin_social_proxy,
actions: gerOrder('#opanda_linkedin_actions'),
clientId: window.opanda_linkedin_client_id,
follow: {
company: $("#opanda_linkedin_follow_company").val()
}
}
},
subscription: {
text: {
message: $("#opanda_subscribe_before_form").val() || window.res_signin_email_form_text
},
form: {
buttonText: $("#opanda_subscribe_button_text").val() || window.res_signin_email_button,
noSpamText: $("#opanda_subscribe_after_button").val() || window.res_signin_after_email_button,
type: $("#opanda_subscribe_name").is(':checked') ? 'name-email-form' : 'email-form'
}
},
subscribeActionOptions: {
campaignId: $("#opanda_subscribe_list").length ? $("#opanda_subscribe_list").val() : null,
service: window.opanda_subscription_service_name,
doubleOptin: $.inArray( optinMode, ['quick-double-optin', 'double-optin'] > -1),
confirm: $.inArray( optinMode, ['double-optin'] > -1)
}
};
return options;
},
adjustHeights: function() {
var maxHeight = 0;
var $buttons = this.$buttons.find(".opanda-actions:not(.opanda-actions-disabled)").each(function(){
var height = $(this).css('height', 'auto').height();
if ( height > maxHeight ) maxHeight = height;
});
$buttons.height(maxHeight);
},
hideEmptyDisabledActions: function() {
$(".opanda-actions-disabled").each(function(){
if ( $(this).find(".opanda-action").length > 0 ) return;
$(this).hide();
});
},
initButtons: function() {
var self = this;
var stringResult = this.$result.val();
if (!stringResult) stringResult = null;
if ( stringResult ) {
var buttons = stringResult.split(',');
for( var index in buttons ) {
var buttonName = buttons[index];
this.activateButton( buttonName, true );
}
}
this.$buttons.each(function(){
self.initButtonActions( $(this).data('name') )
});
this.initActionSaveEmail();
this.updateResult();
},
initActionSaveEmail: function () {
$("input[data-action='lead']").change(function(){
$("#opanda_catch_leads").val( $(this).is(":checked") ? "1" : "0" );
});
if ( $("#opanda_catch_leads").val() == "1" ) {
$("input[data-action='lead']").attr('checked', 'checked');
} else {
$("input[data-action='lead']").removeAttr('checked');
}
},
initButtonActions: function( buttonName ) {
var stringResult = $("#opanda_" + buttonName + "_actions").val();
if (!stringResult) stringResult = null;
if ( stringResult ) {
var actions = stringResult.split(',');
for( var index in actions ) {
var actionName = actions[index];
this.activateButtonAction( buttonName, actionName, true );
}
}
},
setupEvents: function() {
var self = this;
this.$buttons.find(".opanda-button-title input").change(function(){
self.toogleButton( $(this).val() );
});
this.$buttons.find(".opanda-action input").change(function(){
var common = $(this).data('common') ? true : false;
var button = $(this).data('button');
var action = $(this).data('action');
if ( $(this).is(':checked') ) {
self.showOptions( common, button, action );
}
var $input = self.getOptionsLink( common, button, action ).find("input");
if ( $(this).is(':checked') ) {
$input.attr('checked', 'checked');
} else {
$input.removeAttr('checked', 'checked');
}
self.updateResult();
return false;
});
this.$buttons.find(".opanda-action .opanda-action-link").click(function(){
var common = $(this).data('common') ? true : false;
var button = $(this).data('button');
var action = $(this).data('action');
self.toogleOptions( common, button, action );
return false;
});
this.$buttons.find(".opanda-action .opanda-action-link").hover(function(){
var common = $(this).data('common') ? true : false;
var button = $(this).data('button');
var action = $(this).data('action');
var $link = self.getOptionsLink( common, button, action );
$link.addClass('opanda-hover');
}, function(){
var common = $(this).data('common') ? true : false;
var button = $(this).data('button');
var action = $(this).data('action');
var $link = self.getOptionsLink( common, button, action );
$link.removeClass('opanda-hover');
});
},
/**
* Gets the button $object.
*/
getButton: function( name ) {
return this.$control.find(".opanda-button-" + name);
},
/**
* Activates or deactivates the button.
*/
toogleButton: function( name ) {
var $button = this.getButton( name );
if ( $button.hasClass('opanda-on') ) this.deactivateButton( name );
else this.activateButton( name );
},
/**
* Activates the connect button.
*/
activateButton: function( name, setup ) {
var $button = this.getButton( name );
if ( $button.is(".opanda-has-error") ) return;
$button.removeClass('opanda-off').addClass('opanda-on');
$button.find(".opanda-actions .opanda-action:not(.opanda-action-disabled) input").removeAttr('disabled');
$button.find(".opanda-button-title input").attr('checked', 'checked');
if ( !setup ) this.updateResult();
},
/**
* Deactivates the button.
*/
deactivateButton: function( name, setup ) {
var $button = this.getButton( name );
$button.removeClass('opanda-on').addClass('opanda-off');
$button.find(".opanda-actions input").attr('disabled', 'disabled');
$button.find(".opanda-button-title input").removeAttr('checked');
if ( !setup ) this.updateResult();
},
/**
* Activates the button action.
*/
activateButtonAction: function( buttonName, actionName, setup) {
var $button = this.getButton( buttonName );
var $action = $button.find('.opanda-action-' + actionName);
if ( $action.is('.opanda-action-disabled') ) return;
$action.find('input').attr('checked', 'checked');
if ( !setup ) this.updateActionsResult( buttonName, actionName );
},
/**
* Deactivates the button action.
*/
deactivateButtonAction: function( buttonName, actionName, setup) {
var $button = this.getButton( buttonName );
$button.find('.opanda-action-' + actionName + ' inpput').removeAttr('checked');
if ( !setup ) this.updateActionsResult( buttonName, actionName );
},
/**
* Gets the options $object.
*/
getOptions: function( common, button, action ) {
if ( common ) {
return $( "#opanda-" + action + "-options" );
} else {
return $( "#opanda-" + button + "-" + action + "-options" );
}
},
/**
* Gets the options link $object.
*/
getOptionsLink: function( common, button, action ) {
if ( common ) {
return this.$control.find(".opanda-action-" + action);
} else {
return this.$control.find(".opanda-button-" + button + " .opanda-action-" + action);
}
},
/**
* Shows or hides the options.
*/
toogleOptions: function( common, button, action ) {
var $options = this.getOptions( common, button, action );
if ( !$options.is(":visible") ) this.showOptions( common, button, action );
else this.hideOptions( common, button, action );
},
/**
* Shows the action options.
*/
showOptions: function( common, button, action ) {
$(".opanda-connect-buttons-options").addClass('opanda-off');
this.$actions.removeClass('opanda-on');
var $options = this.getOptions( common, button, action );
$options.hide().removeClass('opanda-off').fadeIn(300);
var $link = this.getOptionsLink( common, button, action );
$link.addClass('opanda-on');
},
/**
* Hides the action options.
*/
hideOptions: function( common, button, action ) {
$(".opanda-connect-buttons-options").addClass('opanda-off');
this.$actions.removeClass('opanda-on');
},
/**
* Updates the hidden field where the available buttons are saved.
*/
updateResult: function() {
var buttons = [];
$(".opanda-connect-buttons .opanda-button.opanda-on").each(function(){
buttons.push( $(this).data('name') );
});
this.$result.val( buttons.join(',') );
for( var i in buttons ) {
this.updateActionsResult( buttons[i] );
}
},
/**
* Updates the hidden field where the button actions are saved.
*/
updateActionsResult: function( buttonName ) {
var actions = [];
$(".opanda-connect-buttons .opanda-button-" + buttonName + " .opanda-action input:checked").each(function(){
actions.push( $(this).data('action') );
});
$("#opanda_" + buttonName + "_actions").val( actions.join(',') );
}
};
$(function(){
window.bizpanda.connectOptions.init();
});
})(jQuery)