jQuery(document).ready(function($) { const $openBtn =$('#ss-open-preview-btn'); const $modal =$('#ss-quote-modal'); const $closeBtn =$('#ss-close-modal'); const $downloadBtn =$('#ss-download-png'); const $canvasContainer =$('#ss-canvas-container'); function getFeaturedImageUrl() { if (window.wp && wp.data && wp.data.select('core/editor')) { const mediaId = wp.data.select('core/editor').getEditedPostAttribute('featured_media'); if (mediaId) { const media = wp.data.select('core').getMedia(mediaId); if (media && media.source_url) return media.source_url; } } return $('#ss-featured-image-url').val(); } function urlToBase64(url) { return new Promise((resolve) => { if (!url) resolve(''); let img = new Image(); img.crossOrigin = 'Anonymous'; let timer = setTimeout(() => resolve(url), 4000); img.onload = function() { clearTimeout(timer); let canvas = document.createElement('canvas'); canvas.width = this.naturalWidth; canvas.height = this.naturalHeight; let ctx = canvas.getContext('2d'); ctx.drawImage(this, 0, 0); resolve(canvas.toDataURL('image/png')); }; img.onerror = function() { clearTimeout(timer); resolve(url); }; img.src = url; }); } function formatHighlightedText(text) { return text.replace(/\*(.*?)\*/g, '$1'); } $openBtn.on('click', async function() { const rawText = $('#ss-quote-text').val().trim(); const templateStyle = $('#ss-template-style').val(); const useImage = $('#ss-use-image').is(':checked'); const format = $('#ss-quote-format').val(); const rawImgUrl = getFeaturedImageUrl(); const rawLogoUrl = $('#ss-logo-url').val(); // Toma la categoría del input y la pasa a mayúsculas const rawCategory = $('#ss-post-category').val().trim(); const category = rawCategory ? rawCategory.toUpperCase() : 'PROVINCIALES'; if (!rawText) { alert('Por favor, ingresá el título o texto de la placa.'); return; } $openBtn.prop('disabled', true).text('⏳ Renderizando...'); const base64Img = (useImage && rawImgUrl) ? await urlToBase64(rawImgUrl) : ''; const base64Logo = rawLogoUrl ? await urlToBase64(rawLogoUrl) : ''; $openBtn.prop('disabled', false).text('🖼️ Vista Previa y Exportar'); let width = 1080; let height = (format === 'story') ? 1920 : 1080; $canvasContainer.empty(); let templateHtml = ''; if (templateStyle === 'card-white') { // --- PLANTILLA 1: TARJETA BLANCA --- const formattedText = formatHighlightedText(rawText); const imgHeight = format === 'story' ? '62%' : '58%'; templateHtml = `