Files
roi-theme/wp-content/plugins/wp-marketing-automations/woofunnels/views/woofunnels-deactivate-modal.phtml
root a22573bf0b 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>
2025-11-03 21:04:30 -06:00

434 lines
16 KiB
PHTML
Executable File

<?php
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
$slug = $VARS['slug'];
$licenses = apply_filters( 'woofunnels_plugins_license_needed', array() );
$confirmation_message = '';
$reasons = $VARS['reasons']['default'];
$reasons_list_items_html = '';
$plugin_customized_reasons = array();
$incr = 0;
foreach ( $reasons as $reason ) {
$list_item_classes = 'reason';
$reason_html = '';
if ( ! empty( $reason['input_type'] ) ) {
$list_item_classes .= ' has-input';
}
if ( isset( $reason['html'] ) ) {
$list_item_classes .= ' has_html';
}
if ( ( isset( $reason['html'] ) && ( ! empty( $reason['html'] ) ) ) ) {
$reason_html .= '<div class="reason_html">' . $reason['html'] . '</div>';
}
$reasons_list_items_html .= sprintf( '<li class="%s" data-input-type="%s" data-input-placeholder="%s"><label><span><input type="radio" name="selected-reason" value="%s"/></span><span>%s</span></label>%s</li>', $list_item_classes, $reason['input_type'], $reason['input_placeholder'], $reason['id'], $reason['text'], $reason_html );
$incr ++;
}
?>
<style>
.woofunnels-modal {
position: fixed;
overflow: auto;
height: 100%;
width: 100%;
top: 0;
z-index: 100000;
display: none;
background: rgba(0, 0, 0, 0.6)
}
.woofunnels-modal .woofunnels-modal-dialog {
background: transparent;
position: absolute;
left: 50%;
margin-left: -298px;
top: -100%;
z-index: 100001;
width: 596px
}
.woofunnels-modal li.reason.has_html .reason_html {
display: none;
border: 1px solid #ddd;
padding: 4px 6px;
margin: 6px 0 0 20px;
}
.woofunnels-modal li.reason.has_html.li-active .reason_html {
display: block;
}
@media (max-width: 650px) {
.woofunnels-modal .woofunnels-modal-dialog {
margin-left: -50%;
box-sizing: border-box;
padding-left: 10px;
padding-right: 10px;
width: 100%
}
.woofunnels-modal .woofunnels-modal-dialog .woofunnels-modal-panel > h3 > strong {
font-size: 1.3em
}
.woofunnels-modal .woofunnels-modal-dialog li.reason {
margin-bottom: 10px
}
.woofunnels-modal .woofunnels-modal-dialog li.reason .reason-input {
margin-left: 29px
}
.woofunnels-modal .woofunnels-modal-dialog li.reason label {
display: table
}
.woofunnels-modal .woofunnels-modal-dialog li.reason label > span {
display: table-cell;
font-size: 1.3em
}
}
.woofunnels-modal.active {
display: block
}
.woofunnels-modal.active:before {
display: block
}
.woofunnels-modal.active .woofunnels-modal-dialog {
top: 10%;
background: #fff;
}
.woofunnels-modal .woofunnels-modal-body, .woofunnels-modal .woofunnels-modal-footer {
border: 0;
background: #fefefe;
padding: 25px
}
.woofunnels-modal .woofunnels-modal-body {
border-bottom: 0;
padding: 0px 23px;
}
.woofunnels-modal .woofunnels-modal-body h2 {
font-size: 20px
}
.woofunnels-modal .woofunnels-modal-body > div {
margin-top: 10px
}
.woofunnels-modal .woofunnels-modal-body > div h2 {
font-weight: bold;
font-size: 20px;
margin-top: 0
}
.woofunnels-modal .woofunnels-modal-footer {
border-top: #eeeeee solid 1px;
text-align: right
}
.woofunnels-modal .woofunnels-modal-footer > .button {
margin: 0 7px
}
.woofunnels-modal .woofunnels-modal-footer > .button:first-child {
margin: 0
}
.woofunnels-modal .woofunnels-modal-footer .button-deactivate {
float: left;
}
.woofunnels-modal .woofunnels-modal-panel:not(.active) {
display: none
}
.woofunnels-modal .reason-input {
margin: 3px 0 3px 22px
}
.woofunnels-modal .reason-input input, .woofunnels-modal .reason-input textarea {
width: 100%
}
body.has-woofunnels-modal {
overflow: hidden
}
#the-list .deactivate > .woofunnels-slug {
display: none
}
.woofunnels-modal li.reason-hide {
display: none;
}
</style>
<script type="text/javascript">
var currentPluginName = "";
var WooFunnelsCustomReasons = {};
var WooFunnelsDefaultReason = {};
var WooFunnelsallLicenses = '<?php echo wp_json_encode( $licenses, JSON_UNESCAPED_SLASHES ); ?>';
(function ($) {
<?php
foreach($VARS['reasons'] as $plugin_key => $plugin_reasons) {
$threshold = apply_filters( 'woofunnels_uninstall_reason_threshold_' . $plugin_key, 2 );
?>
WooFunnelsDefaultReason['<?php echo $plugin_key; ?>'] = '';
<?php
if ( $plugin_key === "default" ) {
continue;
}
$reasons_list_items_html_custom = "";
foreach ( $plugin_reasons as $key => $reason ) {
$list_item_classes = 'reason';
$reason_html = '';
if ( ! empty( $reason['input_type'] ) ) {
$list_item_classes .= ' has-input';
}
if ( isset( $reason['html'] ) ) {
$list_item_classes .= ' has_html';
}
if ( ( isset( $reason['html'] ) && ( ! empty( $reason['html'] ) ) ) ) {
$reason_html .= '<div class="reason_html">' . $reason['html'] . '</div>';
}
$threshold = apply_filters( 'woofunnels_uninstall_reason_threshold_' . $plugin_key, 2 );
if ( $key < $threshold ) {
$reasons_list_items_html_custom = sprintf( '<li class="%s" data-input-type="%s" data-input-placeholder="%s"><label><span><input type="radio" name="selected-reason" value="%s"/></span><span>%s</span></label>%s</li>', $list_item_classes, $reason['input_type'], $reason['input_placeholder'], $reason['id'], $reason['text'], $reason_html );
} else {
if ( $key == $threshold ) {
$reasons_list_items_html_custom .= '<li class="advanced show_m_reason" data-input-type="" data-input-placeholder="">
<a href="javascript:void(0)">I have more specific reason</a>
</li>';
}
$reasons_list_items_html_custom .= sprintf( '<li class="%s" data-input-type="%s" data-input-placeholder="%s"><label><span><input type="radio" name="selected-reason" value="%s"/></span><span>%s</span></label>%s</li>', $list_item_classes, $reason['input_type'], $reason['input_placeholder'], $reason['id'], $reason['text'], $reason_html );
}
}
?> WooFunnelsCustomReasons['<?php echo $plugin_key; ?>'] = <?php echo json_encode( $reasons_list_items_html_custom ); ?>;
<?php } ?>
var $deactivateLinks = {};
var reasonsHtml = <?php echo json_encode( $reasons_list_items_html ); ?>,
modalHtml =
'<div class="woofunnels-modal<?php echo ( $confirmation_message === "" ) ? ' no-confirmation-message' : ''; ?>">'
+ ' <div class="woofunnels-modal-dialog">'
+ '<div class="woofunnels-modal-header" style="position: relative;display: block;height: 70px;background: #fff;border-bottom: #eeeeee solid 1px;">'
+ '<div style="padding: 25px 15px;"><svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 233.1 147.2" style="enable-background:new 0 0 233.1 147.2;height: 32px;width: 33px;float: left;/* background: black; *//* fill: bisque; */" xml:space="preserve">'
+ '<polygon class="st0" points="232,3.8 150.4,143.1 117.9,143.1 198.9,3.8 " style="fill: #1daafc;"></polygon>'
+ '<polygon class="st0" points="167.4,3.8 86.8,143.1 5.2,3.8 102.8,3.8 88.2,32.4 86.3,32.4 54.7,32.4 86.3,88.2 134.4,3.8 "></polygon>'
+ '</svg><span style="float: left; font-size: 19px; font-weight: 600; margin-top: 5px; margin-left: 8px;">Quick Feedback</span></div></div>'
+ ' <div class="woofunnels-modal-body">'
+ ' <div class="woofunnels-modal-panel" data-panel-id="confirm"><p><?php echo $confirmation_message; ?></p></div>'
+ ' <div class="woofunnels-modal-panel active" data-panel-id="reasons"><h3><strong><?php printf( WooFunnels_deactivate::load_str( 'deactivation-share-reason' ) ); ?>:</strong></h3><ul id="reasons-list">' + reasonsHtml + '</ul></div>'
+ ' </div>'
+ ' <div class="woofunnels-modal-footer">'
+ ' <a href="#" class="button button-primary button-deactivate"><?php printf( WooFunnels_deactivate::load_str( 'deactivation-modal-button-submit' ) ); ?></a>'
+ ' <a href="#" class="button button-secondary"><?php printf( __( 'Skip & Deactivate', 'funnel-builder' ) ); ?></a>' // phpcs:ignore WordPress.WP.I18n.TextDomainMismatch
+ ' </div>'
+ ' </div>'
+ '</div>',
$modal = $(modalHtml),
$deactivateLink = $('#the-list .deactivate > .woofunnels-slug').prev();
for (var i = 0; i < $deactivateLink.length; i++) {
$deactivateLinks[$($deactivateLink[i]).siblings(".woofunnels-slug").attr('data-slug')] = $deactivateLink[i].href;
}
$modal.appendTo($('body'));
registerEventHandlers();
function registerEventHandlers() {
$deactivateLink.on("click", function (evt) {
evt.preventDefault();
try {
currentPluginName = $(this).siblings(".woofunnels-slug").attr('data-slug');
// Assuming showModal() is a function that might throw an error
showModal();
} catch (error) {
console.error("An error occurred:", error);
// Redirect to the href of the clicked link if an error occurs
const linkHref = $(this).attr('href');
if (linkHref) {
window.location.href = linkHref;
}
}
});
$modal.on('click', '.show_m_reason a', function (evt) {
evt.preventDefault();
$modal.find(".reason-hide").show();
$(this).parent().remove();
return false;
});
$modal.on('click', '.button', function (evt) {
evt.preventDefault();
if ($(this).hasClass('disabled')) {
return;
}
var _parent = $(this).parents('.woofunnels-modal:first');
var _this = $(this);
var $radio = $('input[type="radio"]:checked');
var $selected_reason = $radio.parents('li:first'),
$input = $selected_reason.find('textarea, input[type="text"]');
$.ajax({
url: ajaxurl,
method: 'POST',
data: {
'action': 'woofunnels_submit_uninstall_reason',
'reason_id': (0 !== $radio.length) ? $radio.val() : '',
'reason_info': (0 !== $input.length) ? $input.val().trim() : '',
'plugin_basename': currentPluginName,
'licenses': WooFunnelsallLicenses,
'_nonce': bwf_secure.nonce
},
beforeSend: function () {
_parent.find('.button').addClass('disabled');
},
complete: function () {
// Do not show the dialog box, deactivate the plugin.
window.location.href = $deactivateLinks[currentPluginName];
}
});
});
$modal.on('click', 'input[type="radio"]', function () {
var _parent = $(this).parents('li:first');
var _parent_ul = $(this).parents('ul#reasons-list');
_parent_ul.children("li.li-active").removeClass("li-active");
$modal.find('.reason-input').remove();
if (_parent.hasClass('has_html')) {
_parent.addClass('li-active');
}
if (_parent.hasClass('has-input')) {
var inputType = _parent.data('input-type'),
inputPlaceholder = _parent.data('input-placeholder'),
reasonInputHtml = '<div class="reason-input">' + (('textfield' === inputType) ? '<input type="text" />' : '<textarea rows="5"></textarea>') + '</div>';
_parent.append($(reasonInputHtml));
_parent.find('input, textarea').attr('placeholder', inputPlaceholder).focus();
}
});
// If the user has clicked outside the window, cancel it.
$modal.on('click', function (evt) {
var $target = $(evt.target);
// If the user has clicked anywhere in the modal dialog, just return.
if ($target.hasClass('woofunnels-modal-body') || $target.hasClass('woofunnels-modal-footer')) {
return;
}
// If the user has not clicked the close button and the clicked element is inside the modal dialog, just return.
if (!$target.hasClass('button-close') && ($target.parents('.woofunnels-modal-body').length > 0 || $target.parents('.woofunnels-modal-footer').length > 0)) {
return;
}
closeModal();
});
}
function showModal() {
resetModal();
// Display the dialog box.
$modal.addClass('active');
$('body').addClass('has-woofunnels-modal');
}
function closeModal() {
$modal.removeClass('active');
$('body').removeClass('has-woofunnels-modal');
}
function resetModal() {
if (WooFunnelsCustomReasons.hasOwnProperty(currentPluginName) === true) {
$modal.find("ul#reasons-list").html(WooFunnelsCustomReasons[currentPluginName]);
} else {
$modal.find("ul#reasons-list").html(reasonsHtml);
}
var defaultSelect = WooFunnelsDefaultReason[currentPluginName] || WooFunnelsDefaultReason['default'];
$modal.find('.button').removeClass('disabled');
// Uncheck all radio buttons.
$modal.find('input[type="radio"]').prop('checked', false);
if (defaultSelect !== "") {
$modal.find('input[type="radio"][value="' + defaultSelect + '"]').prop('checked', true);
$modal.find('input[type="radio"][value="' + defaultSelect + '"]').parents('li.reason').addClass('li-active');
}
// Remove all input fields ( textfield, textarea ).
$modal.find('.reason-input').remove();
$modal.find(".reason-hide").hide();
/*
* If the modal dialog has no confirmation message, that is, it has only one panel, then ensure
* that clicking the deactivate button will actually deactivate the plugin.
*/
if ($modal.hasClass('no-confirmation-message')) {
showPanel('reasons');
} else {
showPanel('confirm');
}
}
function showPanel(panelType) {
$modal.find('.woofunnels-modal-panel').removeClass('active ');
$modal.find('[data-panel-id="' + panelType + '"]').addClass('active');
}
function getCurrentPanel() {
return $modal.find('.woofunnels-modal-panel.active').attr('data-panel-id');
}
})(jQuery);
</script>