Plugin Directory

Changeset 3342477


Ignore:
Timestamp:
08/10/2025 05:53:31 PM (5 months ago)
Author:
coderzstudio
Message:

release version 1.0.13

Location:
custom-iframe
Files:
20 edited
1 copied

Legend:

Unmodified
Added
Removed
  • custom-iframe/tags/1.0.13/assets/css/admin/admin.css

    r3314097 r3342477  
    240240
    241241.step-title {
    242     color: var(--primary);
     242    color: #100D3F;
    243243    font-weight: 500;
    244244    margin-bottom: 10px;
     
    482482.pro-features-list .coming-soon {
    483483    font-size: 12px;
    484     color: #4f46e5;
     484    color: #100D3F;
    485485    margin-left: 5px;
    486486    font-style: italic;
    487487    white-space: nowrap;
     488    font-weight: 500;
    488489}
    489490
  • custom-iframe/tags/1.0.13/assets/js/widget.js

    r3277337 r3342477  
    1313        // Auto height only works when cross origin properly set
    1414        if (autoHeight === 'yes') {
    15             document.addEventListener('lazyshow', function (e) {
    16                 if (e.target === iframe) {
    17                     try {
    18                         var height = iframe.contentDocument.querySelector('html').scrollHeight;
    19                         iframe.style.height = height + 'px';
    20                     } catch (e) {
    21                         console.log('Cross origin iframe detected');
    22                     }
    23                 }
    24             });
     15            try {
     16                var height = iframe.contentDocument.querySelector('html').scrollHeight;
     17                iframe.style.height = height + 'px';
     18            } catch (e) {
     19                console.log('Cross origin iframe detected');
     20            }
    2521        }
    2622
  • custom-iframe/tags/1.0.13/custom-iframe-widget.php

    r3325265 r3342477  
    44 * Plugin URI: https://coderzstudio.com/plugins/custom-iframe
    55 * Description: An advanced Elementor widget to embed iFrames with customizable options.
    6  * Version: 1.0.12
     6 * Version: 1.0.13
    77 * Author: Coderz Studio
    88 * Author URI: https://coderzstudio.com/
     
    1919 * Requires at least: 5.8
    2020 * Requires PHP: 7.4
    21  * Elementor tested up to: 3.30
    22  * Elementor Pro tested up to: 3.30
     21 * Elementor tested up to: 3.31
     22 * Elementor Pro tested up to: 3.31
    2323 */
    2424
     
    5151
    5252// Define constants.
    53 define( 'CUSTIF_VERSION', '1.0.12' );
     53define( 'CUSTIF_VERSION', '1.0.13' );
    5454define( 'CUSTIF_URL', plugin_dir_url( __FILE__ ) );
    5555define( 'CUSTIF_PATH', plugin_dir_path( __FILE__ ) );
  • custom-iframe/tags/1.0.13/includes/class-custif-admin.php

    r3314097 r3342477  
    232232                                                <li>🐦 <?php esc_html_e( 'Enhanced X (Twitter) Options', 'custom-iframe' ); ?></li>
    233233                                                <li>🎨 <?php esc_html_e( 'Custom Watermarks', 'custom-iframe' ); ?> <span class="coming-soon">(<?php esc_html_e( 'coming soon', 'custom-iframe' ); ?>)</span></li>
    234                                                 <li>📚 <?php esc_html_e( '3D Flipbook PDF Viewer', 'custom-iframe' ); ?> <span class="coming-soon">(<?php esc_html_e( 'coming soon', 'custom-iframe' ); ?>)</span></li>
     234                                                <li>📚 <?php esc_html_e( '3D Flipbook PDF', 'custom-iframe' ); ?> <span class="coming-soon">(<?php esc_html_e( 'coming soon', 'custom-iframe' ); ?>)</span></li>
    235235                                                <li>📱 <?php esc_html_e( 'Device Frame Display', 'custom-iframe' ); ?> <span class="coming-soon">(<?php esc_html_e( 'coming soon', 'custom-iframe' ); ?>)</span></li>
    236236                                            </ul>
     
    291291                        <div class="resource-card">
    292292                            <div class="resource-title"><?php esc_html_e( 'Documentation', 'custom-iframe' ); ?></div>
    293                             <button class="resource-action"><a href="https://coderzstudio.com/plugin-doc/custom-iframe/?utm_source=wordpress&utm_medium=dashboard&utm_campaign=custom_iframe&utm_id=wp_04" target="_blank"><?php esc_html_e( 'Read Now', 'custom-iframe' ); ?></a></button>
     293                            <button class="resource-action"><a href="https://customiframe.com/docs/?utm_source=plugin&utm_medium=wpdashboard&utm_campaign=read_docs" target="_blank"><?php esc_html_e( 'Read Now', 'custom-iframe' ); ?></a></button>
    294294                        </div>
    295295
  • custom-iframe/tags/1.0.13/includes/class-deactivate-feedback.php

    r3311922 r3342477  
    198198
    199199            $reason_key = ! empty( $_POST['reason_key'] ) ? sanitize_text_field( wp_unslash( $_POST['reason_key'] ) ) : '';
    200             $reason_text = ! empty( $_POST[ 'reason_' . $reason_key ] ) ? sanitize_text_field( wp_unslash( $_POST[ 'reason_' . $reason_key ] ) ) : '';
     200            $reason_text = ! empty( $_POST['reason_text'] ) ? sanitize_text_field( wp_unslash( $_POST['reason_text'] ) ) : '';
    201201
    202202            $api_params = array(
    203203                'count' => 1,
    204                 'reason' => $reason_text ? $reason_text : $reason_key,
     204                'reason' => $reason_key . ( ! empty( $reason_text ) ? ': ' . $reason_text : '' ),
    205205            );
    206206
  • custom-iframe/tags/1.0.13/includes/class-notice-manager.php

    r3311922 r3342477  
    126126        <p>
    127127            <a href="https://youtu.be/EB6MgWB6zLA?si=IqG88NkkM_DC84Ds" target="_blank">🎥 Video Tutorial</a> &nbsp;|&nbsp;
    128             <a href="https://coderzstudio.com/plugins/custom-iframe/demo/?utm_source=wordpress&utm_medium=dashboard&utm_campaign=custom_iframe&utm_id=wp_03" target="_blank">🔗 Live Demo</a>
     128            <a href="https://customiframe.com/demo/?utm_source=elementor&utm_medium=widget_settings&utm_campaign=demo" target="_blank">🔗 Live Demo</a>
    129129        </p>
    130130    </div>';
     
    213213        <?php
    214214    }
     215
     216    /**
     217     * Get pro plugin notice HTML.
     218     *
     219     * @return string Pro plugin notice HTML.
     220     * @since 1.0.13
     221     */
     222    public function pro_plugin_notice() {
     223        return sprintf(
     224            '<div class="custif-pro-notice">
     225            <div class="notice-content">
     226                <span class="notice-text">%s</span>
     227            </div>
     228            <div class="notice-actions">
     229                <a href="%s" target="_blank" class="upgrade-link">%s</a>
     230            </div>
     231        </div>
     232        <style>
     233            .custif-pro-notice {
     234                background: #f8fafc;
     235                border: 1px solid #e2e8f0;
     236                border-radius: 6px;
     237                padding: 10px 14px;
     238                margin: 8px 0;
     239                display: flex;
     240                align-items: center;
     241                justify-content: space-between;
     242                font-size: 12px;
     243                line-height: 1.3;
     244            }
     245            .custif-pro-notice .notice-content {
     246                display: flex;
     247                align-items: center;
     248                gap: 6px;
     249                font-size: 12px;
     250            }
     251            .custif-pro-notice .pro-badge {
     252                background: #6366f1;
     253                color: white;
     254                padding: 1px 4px;
     255                border-radius: 2px;
     256                font-size: 9px;
     257                font-weight: 600;
     258                text-transform: uppercase;
     259                letter-spacing: 0.3px;
     260            }
     261            .custif-pro-notice .notice-text {
     262                color: #64748b;
     263                font-weight: 400;
     264            }
     265            .custif-pro-notice .notice-actions {
     266                display: flex;
     267                align-items: center;
     268                gap: 8px;
     269                flex-shrink: 0;
     270            }
     271            .custif-pro-notice .demo-link,
     272            .custif-pro-notice .upgrade-link {
     273                text-decoration: none;
     274                font-weight: 500;
     275                font-size: 12px;
     276                padding: 3px 10px;
     277                border-radius: 5px;
     278                transition: all 0.2s;
     279            }
     280            .custif-pro-notice .demo-link {
     281                color: #64748b;
     282                border: 1px solid #cbd5e1;
     283            }
     284            .custif-pro-notice .demo-link:hover {
     285                background: #f1f5f9;
     286                color: #475569;
     287            }
     288            .custif-pro-notice .upgrade-link {
     289                color: #6366f1;
     290                background: #f0f4ff;
     291            }
     292            .custif-pro-notice .upgrade-link:hover {
     293                background: #e0e7ff;
     294                color: #4f46e5;
     295            }
     296        </style>',
     297            esc_html( sprintf( __( 'Upgrade to unlock this option', 'custom-iframe-widget-for-elementor' ) ) ),
     298            esc_url( 'https://customiframe.com/early-bird/?utm_source=plugin&utm_medium=wpdashboard&utm_campaign=upgrade_cta' ),
     299            esc_html__( 'Get Pro', 'custom-iframe-widget-for-elementor' )
     300        );
     301    }
    215302}
    216303
  • custom-iframe/tags/1.0.13/languages/custom-iframe.pot

    r3325265 r3342477  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: Custom iFrame 1.0.12\n"
     5"Project-Id-Version: Custom iFrame 1.0.13\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/custom-iframe\n"
    77"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
     
    1010"Content-Type: text/plain; charset=UTF-8\n"
    1111"Content-Transfer-Encoding: 8bit\n"
    12 "POT-Creation-Date: 2025-07-09T20:36:45+00:00\n"
     12"POT-Creation-Date: 2025-08-10T16:06:36+00:00\n"
    1313"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    1414"X-Generator: WP-CLI 2.11.0\n"
     
    1919#: includes/class-custif-admin.php:31
    2020#: includes/class-custif-admin.php:32
    21 #: widget/class-custom-iframe-widget.php:77
     21#: widget/class-custom-iframe-widget.php:96
    2222msgid "Custom iFrame"
    2323msgstr ""
     
    134134
    135135#: includes/class-custif-admin.php:234
    136 msgid "3D Flipbook PDF Viewer"
     136msgid "3D Flipbook PDF"
    137137msgstr ""
    138138
     
    299299msgstr ""
    300300
    301 #: widget/class-custom-iframe-widget.php:132
     301#: widget/class-custom-iframe-widget.php:151
    302302msgid "Content"
    303303msgstr ""
    304304
    305 #: widget/class-custom-iframe-widget.php:140
     305#: widget/class-custom-iframe-widget.php:159
    306306msgid "Source Type"
    307307msgstr ""
    308308
    309 #: widget/class-custom-iframe-widget.php:144
     309#: widget/class-custom-iframe-widget.php:163
    310310msgid "Default"
    311311msgstr ""
    312312
    313 #: widget/class-custom-iframe-widget.php:145
     313#: widget/class-custom-iframe-widget.php:164
    314314msgid "Pdf"
    315315msgstr ""
    316316
    317 #: widget/class-custom-iframe-widget.php:154
     317#: widget/class-custom-iframe-widget.php:165
     318msgid "X ( Pro )"
     319msgstr ""
     320
     321#: widget/class-custom-iframe-widget.php:166
     322msgid "YouTube ( Pro )"
     323msgstr ""
     324
     325#: widget/class-custom-iframe-widget.php:167
     326msgid "Vimeo ( Pro )"
     327msgstr ""
     328
     329#: widget/class-custom-iframe-widget.php:175
    318330msgid "Source URL"
    319331msgstr ""
    320332
    321 #: widget/class-custom-iframe-widget.php:159
     333#: widget/class-custom-iframe-widget.php:180
    322334msgid "https://example.com"
    323335msgstr ""
    324336
    325 #: widget/class-custom-iframe-widget.php:172
     337#: widget/class-custom-iframe-widget.php:193
    326338msgid "PDF Source"
    327339msgstr ""
    328340
    329 #: widget/class-custom-iframe-widget.php:176
     341#: widget/class-custom-iframe-widget.php:197
    330342msgid "File"
    331343msgstr ""
    332344
    333 #: widget/class-custom-iframe-widget.php:177
    334 #: widget/class-custom-iframe-widget.php:210
     345#: widget/class-custom-iframe-widget.php:198
     346#: widget/class-custom-iframe-widget.php:231
    335347msgid "URL"
    336348msgstr ""
    337349
    338 #: widget/class-custom-iframe-widget.php:188
     350#: widget/class-custom-iframe-widget.php:209
    339351msgid "Upload File"
    340352msgstr ""
    341353
    342 #: widget/class-custom-iframe-widget.php:196
     354#: widget/class-custom-iframe-widget.php:217
    343355msgid "Upload a file or pick one from your media library for embed. Supported File Type: PDF"
    344356msgstr ""
    345357
    346 #: widget/class-custom-iframe-widget.php:212
     358#: widget/class-custom-iframe-widget.php:233
    347359msgid "https://your-link.com/file.pdf"
    348360msgstr ""
    349361
    350 #: widget/class-custom-iframe-widget.php:235
     362#: widget/class-custom-iframe-widget.php:256
    351363msgid "URL PDFs can't customize  toolbar options due to external source limits"
    352364msgstr ""
    353365
    354 #: widget/class-custom-iframe-widget.php:249
     366#: widget/class-custom-iframe-widget.php:270
    355367msgid "Height"
    356368msgstr ""
    357369
    358 #: widget/class-custom-iframe-widget.php:283
     370#: widget/class-custom-iframe-widget.php:291
     371msgid "height is not supported when using the X Embed Post."
     372msgstr ""
     373
     374#: widget/class-custom-iframe-widget.php:305
    359375msgid "Auto Height"
    360376msgstr ""
    361377
    362 #: widget/class-custom-iframe-widget.php:285
    363 #: widget/class-custom-iframe-widget.php:334
    364 #: widget/class-custom-iframe-widget.php:350
     378#: widget/class-custom-iframe-widget.php:307
     379#: widget/class-custom-iframe-widget.php:359
     380#: widget/class-custom-iframe-widget.php:387
    365381msgid "Yes"
    366382msgstr ""
    367383
    368 #: widget/class-custom-iframe-widget.php:286
    369 #: widget/class-custom-iframe-widget.php:335
    370 #: widget/class-custom-iframe-widget.php:351
     384#: widget/class-custom-iframe-widget.php:308
     385#: widget/class-custom-iframe-widget.php:360
     386#: widget/class-custom-iframe-widget.php:388
    371387msgid "No"
    372388msgstr ""
    373389
    374 #: widget/class-custom-iframe-widget.php:295
     390#: widget/class-custom-iframe-widget.php:312
     391msgid "Auto height only works when cross domain with \"allow origin all in header\"."
     392msgstr ""
     393
     394#: widget/class-custom-iframe-widget.php:319
    375395msgid "Show Scrollbars"
    376396msgstr ""
    377397
    378 #: widget/class-custom-iframe-widget.php:307
     398#: widget/class-custom-iframe-widget.php:332
    379399msgid "Refresh Interval (seconds)"
    380400msgstr ""
    381401
    382 #: widget/class-custom-iframe-widget.php:312
     402#: widget/class-custom-iframe-widget.php:337
    383403msgid "Set 0 to disable auto-refresh"
    384404msgstr ""
    385405
    386 #: widget/class-custom-iframe-widget.php:324
     406#: widget/class-custom-iframe-widget.php:349
    387407msgid "Smart Load"
    388408msgstr ""
    389409
    390 #: widget/class-custom-iframe-widget.php:332
    391 #: widget/class-custom-iframe-widget.php:348
     410#: widget/class-custom-iframe-widget.php:357
     411#: widget/class-custom-iframe-widget.php:385
    392412msgid "Lazy Load"
    393413msgstr ""
    394414
    395 #: widget/class-custom-iframe-widget.php:364
     415#: widget/class-custom-iframe-widget.php:401
    396416msgid "Placeholder Image"
    397417msgstr ""
    398418
    399 #: widget/class-custom-iframe-widget.php:378
     419#: widget/class-custom-iframe-widget.php:415
     420#: widget/class-custom-iframe-widget.php:442
     421msgid "X Basic Options"
     422msgstr ""
     423
     424#: widget/class-custom-iframe-widget.php:469
     425msgid "Basic Options"
     426msgstr ""
     427
     428#: widget/class-custom-iframe-widget.php:496
     429msgid "YouTube Playback"
     430msgstr ""
     431
     432#: widget/class-custom-iframe-widget.php:523
     433msgid "YouTube Appearance"
     434msgstr ""
     435
     436#: widget/class-custom-iframe-widget.php:550
     437msgid "YouTube Advanced"
     438msgstr ""
     439
     440#: widget/class-custom-iframe-widget.php:577
     441msgid "YouTube Captions"
     442msgstr ""
     443
     444#: widget/class-custom-iframe-widget.php:604
     445msgid "Vimeo Basic Options"
     446msgstr ""
     447
     448#: widget/class-custom-iframe-widget.php:631
     449msgid "Vimeo Playback"
     450msgstr ""
     451
     452#: widget/class-custom-iframe-widget.php:658
     453msgid "Vimeo Appearance"
     454msgstr ""
     455
     456#: widget/class-custom-iframe-widget.php:685
    400457msgid "Display Options"
    401458msgstr ""
    402459
    403 #: widget/class-custom-iframe-widget.php:390
     460#: widget/class-custom-iframe-widget.php:697
    404461msgid "Theme"
    405462msgstr ""
    406463
    407 #: widget/class-custom-iframe-widget.php:394
     464#: widget/class-custom-iframe-widget.php:701
    408465msgid "System Default"
    409466msgstr ""
    410467
    411 #: widget/class-custom-iframe-widget.php:395
     468#: widget/class-custom-iframe-widget.php:702
    412469msgid "Dark"
    413470msgstr ""
    414471
    415 #: widget/class-custom-iframe-widget.php:396
     472#: widget/class-custom-iframe-widget.php:703
    416473msgid "Light"
    417474msgstr ""
    418475
    419 #: widget/class-custom-iframe-widget.php:397
    420 #: widget/class-custom-iframe-widget.php:431
     476#: widget/class-custom-iframe-widget.php:704
     477#: widget/class-custom-iframe-widget.php:738
    421478msgid "Custom"
    422479msgstr ""
    423480
    424 #: widget/class-custom-iframe-widget.php:409
     481#: widget/class-custom-iframe-widget.php:716
    425482msgid "Custom Color"
    426483msgstr ""
    427484
    428 #: widget/class-custom-iframe-widget.php:423
     485#: widget/class-custom-iframe-widget.php:730
    429486msgid "Zoom"
    430487msgstr ""
    431488
    432 #: widget/class-custom-iframe-widget.php:427
     489#: widget/class-custom-iframe-widget.php:734
    433490msgid "Automatic Zoom"
    434491msgstr ""
    435492
    436 #: widget/class-custom-iframe-widget.php:428
     493#: widget/class-custom-iframe-widget.php:735
    437494msgid "Actual Size"
    438495msgstr ""
    439496
    440 #: widget/class-custom-iframe-widget.php:429
     497#: widget/class-custom-iframe-widget.php:736
    441498msgid "Page Fit"
    442499msgstr ""
    443500
    444 #: widget/class-custom-iframe-widget.php:430
     501#: widget/class-custom-iframe-widget.php:737
    445502msgid "Page Width"
    446503msgstr ""
    447504
    448 #: widget/class-custom-iframe-widget.php:432
     505#: widget/class-custom-iframe-widget.php:739
    449506msgid "50%"
    450507msgstr ""
    451508
    452 #: widget/class-custom-iframe-widget.php:433
     509#: widget/class-custom-iframe-widget.php:740
    453510msgid "75%"
    454511msgstr ""
    455512
    456 #: widget/class-custom-iframe-widget.php:434
     513#: widget/class-custom-iframe-widget.php:741
    457514msgid "100%"
    458515msgstr ""
    459516
    460 #: widget/class-custom-iframe-widget.php:435
     517#: widget/class-custom-iframe-widget.php:742
    461518msgid "125%"
    462519msgstr ""
    463520
    464 #: widget/class-custom-iframe-widget.php:436
     521#: widget/class-custom-iframe-widget.php:743
    465522msgid "150%"
    466523msgstr ""
    467524
    468 #: widget/class-custom-iframe-widget.php:437
     525#: widget/class-custom-iframe-widget.php:744
    469526msgid "200%"
    470527msgstr ""
    471528
    472 #: widget/class-custom-iframe-widget.php:438
     529#: widget/class-custom-iframe-widget.php:745
    473530msgid "300%"
    474531msgstr ""
    475532
    476 #: widget/class-custom-iframe-widget.php:439
     533#: widget/class-custom-iframe-widget.php:746
    477534msgid "400%"
    478535msgstr ""
    479536
    480 #: widget/class-custom-iframe-widget.php:441
     537#: widget/class-custom-iframe-widget.php:748
    481538msgid "Note: Initial zoom value when the file is loaded."
    482539msgstr ""
    483540
    484 #: widget/class-custom-iframe-widget.php:452
     541#: widget/class-custom-iframe-widget.php:759
    485542msgid "Custom Zoom"
    486543msgstr ""
    487544
    488 #: widget/class-custom-iframe-widget.php:465
     545#: widget/class-custom-iframe-widget.php:772
    489546msgid "Default Selection Tool"
    490547msgstr ""
    491548
    492 #: widget/class-custom-iframe-widget.php:468
     549#: widget/class-custom-iframe-widget.php:775
    493550msgid "Text Tool"
    494551msgstr ""
    495552
    496 #: widget/class-custom-iframe-widget.php:469
     553#: widget/class-custom-iframe-widget.php:776
    497554msgid "Hand Tool"
    498555msgstr ""
    499556
    500 #: widget/class-custom-iframe-widget.php:482
     557#: widget/class-custom-iframe-widget.php:789
    501558msgid "Default Scrolling"
    502559msgstr ""
    503560
    504 #: widget/class-custom-iframe-widget.php:485
     561#: widget/class-custom-iframe-widget.php:792
    505562msgid "Page Scrolling"
    506563msgstr ""
    507564
    508 #: widget/class-custom-iframe-widget.php:486
     565#: widget/class-custom-iframe-widget.php:793
    509566msgid "Vertical Scrolling"
    510567msgstr ""
    511568
    512 #: widget/class-custom-iframe-widget.php:487
     569#: widget/class-custom-iframe-widget.php:794
    513570msgid "Horizontal Scrolling"
    514571msgstr ""
    515572
    516 #: widget/class-custom-iframe-widget.php:488
     573#: widget/class-custom-iframe-widget.php:795
    517574msgid "Wrapped Scrolling"
    518575msgstr ""
    519576
    520 #: widget/class-custom-iframe-widget.php:501
     577#: widget/class-custom-iframe-widget.php:808
    521578msgid "Default Spreads"
    522579msgstr ""
    523580
    524 #: widget/class-custom-iframe-widget.php:504
     581#: widget/class-custom-iframe-widget.php:811
    525582msgid "No Spreads"
    526583msgstr ""
    527584
    528 #: widget/class-custom-iframe-widget.php:505
     585#: widget/class-custom-iframe-widget.php:812
    529586msgid "Odd Spreads"
    530587msgstr ""
    531588
    532 #: widget/class-custom-iframe-widget.php:506
     589#: widget/class-custom-iframe-widget.php:813
    533590msgid "Even Spreads"
    534591msgstr ""
    535592
    536 #: widget/class-custom-iframe-widget.php:522
     593#: widget/class-custom-iframe-widget.php:829
    537594msgid "Toolbar Settings"
    538595msgstr ""
    539596
    540 #: widget/class-custom-iframe-widget.php:534
     597#: widget/class-custom-iframe-widget.php:841
    541598msgid "Toolbar"
    542599msgstr ""
    543600
    544 #: widget/class-custom-iframe-widget.php:536
    545 #: widget/class-custom-iframe-widget.php:577
    546 #: widget/class-custom-iframe-widget.php:594
    547 #: widget/class-custom-iframe-widget.php:611
    548 #: widget/class-custom-iframe-widget.php:628
    549 #: widget/class-custom-iframe-widget.php:645
    550 #: widget/class-custom-iframe-widget.php:662
    551 #: widget/class-custom-iframe-widget.php:679
    552 #: widget/class-custom-iframe-widget.php:696
     601#: widget/class-custom-iframe-widget.php:843
     602#: widget/class-custom-iframe-widget.php:884
     603#: widget/class-custom-iframe-widget.php:901
     604#: widget/class-custom-iframe-widget.php:918
     605#: widget/class-custom-iframe-widget.php:935
     606#: widget/class-custom-iframe-widget.php:952
     607#: widget/class-custom-iframe-widget.php:969
     608#: widget/class-custom-iframe-widget.php:986
     609#: widget/class-custom-iframe-widget.php:1003
    553610msgid "Show"
    554611msgstr ""
    555612
    556 #: widget/class-custom-iframe-widget.php:537
    557 #: widget/class-custom-iframe-widget.php:578
    558 #: widget/class-custom-iframe-widget.php:595
    559 #: widget/class-custom-iframe-widget.php:612
    560 #: widget/class-custom-iframe-widget.php:629
    561 #: widget/class-custom-iframe-widget.php:646
    562 #: widget/class-custom-iframe-widget.php:663
    563 #: widget/class-custom-iframe-widget.php:680
    564 #: widget/class-custom-iframe-widget.php:697
     613#: widget/class-custom-iframe-widget.php:844
     614#: widget/class-custom-iframe-widget.php:885
     615#: widget/class-custom-iframe-widget.php:902
     616#: widget/class-custom-iframe-widget.php:919
     617#: widget/class-custom-iframe-widget.php:936
     618#: widget/class-custom-iframe-widget.php:953
     619#: widget/class-custom-iframe-widget.php:970
     620#: widget/class-custom-iframe-widget.php:987
     621#: widget/class-custom-iframe-widget.php:1004
    565622msgid "Hide"
    566623msgstr ""
    567624
    568 #: widget/class-custom-iframe-widget.php:550
     625#: widget/class-custom-iframe-widget.php:857
    569626msgid "Toolbar Position"
    570627msgstr ""
    571628
    572 #: widget/class-custom-iframe-widget.php:554
     629#: widget/class-custom-iframe-widget.php:861
    573630msgid "Top"
    574631msgstr ""
    575632
    576 #: widget/class-custom-iframe-widget.php:558
     633#: widget/class-custom-iframe-widget.php:865
    577634msgid "Bottom"
    578635msgstr ""
    579636
    580 #: widget/class-custom-iframe-widget.php:575
     637#: widget/class-custom-iframe-widget.php:882
    581638msgid "Print/Download"
    582639msgstr ""
    583640
    584 #: widget/class-custom-iframe-widget.php:592
     641#: widget/class-custom-iframe-widget.php:899
    585642msgid "Presentation Mode"
    586643msgstr ""
    587644
    588 #: widget/class-custom-iframe-widget.php:609
     645#: widget/class-custom-iframe-widget.php:916
    589646msgid "Copy Text"
    590647msgstr ""
    591648
    592 #: widget/class-custom-iframe-widget.php:626
     649#: widget/class-custom-iframe-widget.php:933
    593650msgid "Add Text"
    594651msgstr ""
    595652
    596 #: widget/class-custom-iframe-widget.php:643
     653#: widget/class-custom-iframe-widget.php:950
    597654msgid "Draw"
    598655msgstr ""
    599656
    600 #: widget/class-custom-iframe-widget.php:660
     657#: widget/class-custom-iframe-widget.php:967
    601658msgid "Add Image"
    602659msgstr ""
    603660
    604 #: widget/class-custom-iframe-widget.php:677
     661#: widget/class-custom-iframe-widget.php:984
    605662msgid "Rotation"
    606663msgstr ""
    607664
    608 #: widget/class-custom-iframe-widget.php:694
     665#: widget/class-custom-iframe-widget.php:1001
    609666msgid "Properties"
    610667msgstr ""
    611668
    612 #: widget/class-custom-iframe-widget.php:713
     669#: widget/class-custom-iframe-widget.php:1020
    613670msgid "Advance"
    614671msgstr ""
    615672
    616 #: widget/class-custom-iframe-widget.php:721
     673#: widget/class-custom-iframe-widget.php:1028
    617674msgid "Custom ID"
    618675msgstr ""
    619676
    620 #: widget/class-custom-iframe-widget.php:723
     677#: widget/class-custom-iframe-widget.php:1030
    621678msgid "my-custom-iframe"
    622679msgstr ""
    623680
    624 #: widget/class-custom-iframe-widget.php:724
     681#: widget/class-custom-iframe-widget.php:1031
    625682msgid "Enter an ID for custom CSS or JavaScript. Leave empty for an auto-generated ID."
    626683msgstr ""
    627684
    628 #: widget/class-custom-iframe-widget.php:738
     685#: widget/class-custom-iframe-widget.php:1043
     686msgid "Enable Sandbox"
     687msgstr ""
     688
     689#: widget/class-custom-iframe-widget.php:1066
     690msgid "Attributes"
     691msgstr ""
     692
     693#: widget/class-custom-iframe-widget.php:1091
    629694msgid "Style"
    630695msgstr ""
    631696
    632 #: widget/class-custom-iframe-widget.php:746
     697#: widget/class-custom-iframe-widget.php:1099
    633698msgid "Padding"
    634699msgstr ""
    635700
    636 #: widget/class-custom-iframe-widget.php:759
     701#: widget/class-custom-iframe-widget.php:1112
     702msgid "Container Width"
     703msgstr ""
     704
     705#: widget/class-custom-iframe-widget.php:1143
    637706msgid "Alignment"
    638707msgstr ""
    639708
    640 #: widget/class-custom-iframe-widget.php:763
     709#: widget/class-custom-iframe-widget.php:1147
    641710msgid "Left"
    642711msgstr ""
    643712
    644 #: widget/class-custom-iframe-widget.php:767
     713#: widget/class-custom-iframe-widget.php:1151
    645714msgid "Center"
    646715msgstr ""
    647716
    648 #: widget/class-custom-iframe-widget.php:771
     717#: widget/class-custom-iframe-widget.php:1155
    649718msgid "Right"
    650719msgstr ""
    651720
    652 #: widget/class-custom-iframe-widget.php:783
    653 msgid "Container Width"
    654 msgstr ""
    655 
    656 #: widget/class-custom-iframe-widget.php:816
    657 #: widget/class-custom-iframe-widget.php:824
     721#: widget/class-custom-iframe-widget.php:1169
     722#: widget/class-custom-iframe-widget.php:1177
    658723msgid "Background Style"
    659724msgstr ""
    660725
    661 #: widget/class-custom-iframe-widget.php:835
     726#: widget/class-custom-iframe-widget.php:1188
    662727msgid "Border Style"
    663728msgstr ""
    664729
    665 #: widget/class-custom-iframe-widget.php:850
     730#: widget/class-custom-iframe-widget.php:1203
    666731msgid "Border Radius"
    667732msgstr ""
    668733
    669 #: widget/class-custom-iframe-widget.php:863
     734#: widget/class-custom-iframe-widget.php:1216
    670735msgid "Box Shadow Style"
    671736msgstr ""
    672737
    673 #: widget/class-custom-iframe-widget.php:949
     738#: widget/class-custom-iframe-widget.php:1302
    674739msgid "Please enter a valid URL"
    675740msgstr ""
  • custom-iframe/tags/1.0.13/readme.txt

    r3325274 r3342477  
    44Requires at least: 5.8
    55Tested up to: 6.8
    6 Stable tag: 1.0.12
     6Stable tag: 1.0.13
    77Requires PHP: 7.4
    88License: GPL-2.0+
     
    5050- 📱 **Device Frame Display** – Show content in device frames (coming soon)
    5151
    52 👉 **[Live Demo](https://coderzstudio.com/plugins/custom-iframe/demo/?utm_source=wordpress&utm_medium=readme&utm_campaign=custom_iframe&utm_id=wp_01)**
    53 👉 **[Get Premium Version](https://coderzstudio.com/plugins/custom-iframe/pricing/?utm_source=wordpress&utm_medium=readme&utm_campaign=custom_iframe&utm_id=wp_01)**
     52👉 **[Live Demo](https://customiframe.com/demo/?utm_source=elementor&utm_medium=widget_settings&utm_campaign=demo)**
     53👉 **[Get Premium Version](https://customiframe.com/early-bird/?utm_source=plugin&utm_medium=wpdashboard&utm_campaign=upgrade_cta)**
    5454
    5555**🔴 Watch the Video Tutorial ( <a href="https://www.youtube.com/watch?v=EB6MgWB6zLA" target="_blank">Link</a> )**
     
    7878== Screenshots ==
    7979
    80 1. Embed Any Type Of content without Limit.
     801. **Embed** Any Type Of content without Limit.
    81812. **Embed Videos** – Video Player ( Youtube, Vimeo, etc.).
    82823. **Embed Social Media Posts** – X, Linkdin, Instagram, etc.
     
    118118== Changelog ==
    119119
    120 = 1.0.12 (July 10, 2025) =
     120= 1.0.13 (August 3, 2025) =
     121* Improvements : Improved Feedback form.
     122* Improvements : Improved Dashboard design.
     123* Improvements : Controller UI Improved.
     124* Fixed : Auto height not working.
     125* Fixed : Border radius not working with box shadows.
     126* Compatibility: Elementor Version Free & Pro 3.31.
     127
     128= 1.0.12 (June 10, 2025) =
    121129* Compatibility: Added support for **YouTube Shorts** embed.
    122130* Compatibility: Added support for **Wistia Videos** embed.
     
    184192Need help? We're here for you!
    185193
    186 💬 **Website:** [CoderzStudio.com](https://coderzstudio.com/?utm_source=wordpress&utm_medium=readme&utm_campaign=custom_iframe&utm_id=wp_01)
    187 📖 **Docs:** [View Documentation](https://coderzstudio.com/plugin-doc/custom-iframe/?utm_source=wordpress&utm_medium=readme&utm_campaign=custom_iframe&utm_id=wp_01)
     194💬 **Website:** [CoderzStudio.com](https://customiframe.com/?utm_source=wordpress&utm_medium=readme&utm_campaign=custom_iframe&utm_id=wp_01)
     195📖 **Docs:** [View Documentation](https://customiframe.com/demo/?utm_source=elementor&utm_medium=widget_settings&utm_campaign=demo)
    188196🛠️ **Support:** [Submit a Request](https://wordpress.org/plugins/custom-iframe/#reviews)
    189197
  • custom-iframe/tags/1.0.13/widget/class-custom-iframe-widget.php

    r3311922 r3342477  
    55use custif\includes\embed_handlers\Embed_Converter;
    66use custif\includes\embed_handlers\PDF_Handler;
     7use custif\includes\Notice_Manager;
    78use Elementor\Controls_Manager;
    89use Elementor\Group_Control_Background;
     
    2728
    2829    /**
     30     * Notices manager instance.
     31     *
     32     * @var Notice_Manager
     33     */
     34    private $notices_manager;
     35
     36    /**
    2937     * Embed converter instance.
    3038     *
     
    5361        parent::__construct( $data, $args );
    5462
    55         // Initialize the embed converter and PDF handler.
     63        // Initialize the embed converter , PDF handler and Notice class.
    5664        $this->embed_converter = new Embed_Converter();
    5765        $this->pdf_handler     = new PDF_Handler();
     66        $this->notices_manager = new Notice_Manager();
     67    }
     68
     69    /**
     70     * Get pro plugin notice HTML.
     71     *
     72     * @return string Pro plugin notice HTML.
     73     * @since 1.0.13
     74     */
     75    protected function pro_plugin_notice() {
     76        return $this->notices_manager->pro_plugin_notice();
    5877    }
    5978
     
    144163                    'default' => __( 'Default', 'custom-iframe' ),
    145164                    'Pdf'     => __( 'Pdf', 'custom-iframe' ),
    146                 ),
    147 
     165                    'X'       => __( 'X ( Pro )', 'custom-iframe' ),
     166                    'Youtube' => __( 'YouTube ( Pro )', 'custom-iframe' ),
     167                    'Vimeo'   => __( 'Vimeo ( Pro )', 'custom-iframe' ),
     168                ),
    148169            )
    149170        );
     
    161182                'show_external' => false,
    162183                'condition'     => array(
    163                     'source' => 'default',
     184                    'source!' => 'Pdf',
    164185                ),
    165186            )
     
    268289                    'size' => 500,
    269290                ),
     291                'description' => __( 'height is not supported when using the X Embed Post.', 'custom-iframe' ),
    270292                'selectors'  => array(
    271293                    '{{WRAPPER}} iframe' => 'height: {{SIZE}}{{UNIT}};',
     
    287309                'return_value' => 'yes',
    288310                'default'      => 'no',
     311                'separator'  => 'before',
     312                'description' => __( 'Auto height only works when cross domain with "allow origin all in header".', 'custom-iframe' ),
    289313            )
    290314        );
     
    297321                'default'   => 'yes',
    298322                'condition' => array(
    299                     'source' => 'default',
    300                 ),
     323                    'source!' => 'Pdf',
     324                ),
     325                'separator'  => 'before',
    301326            )
    302327        );
     
    312337                'description' => __( 'Set 0 to disable auto-refresh', 'custom-iframe' ),
    313338                'condition'   => array(
    314                     'source' => 'default',
     339                    'source!' => 'Pdf',
    315340                ),
    316341            )
     
    337362                'default'      => 'no',
    338363                'separator'    => 'before',
    339                 'condition'    => array(
    340                     'source' => 'default',
     364                'conditions' => array(
     365                    'relation' => 'or',
     366                    'terms' => array(
     367                        array(
     368                            'name' => 'pdf_type',
     369                            'operator' => '!==',
     370                            'value' => 'file',
     371                        ),
     372                        array(
     373                            'name' => 'source',
     374                            'operator' => '!==',
     375                            'value' => 'Pdf',
     376                        ),
     377                    ),
    341378                ),
    342379            )
     
    368405                ),
    369406                'separator' => 'before',
     407            )
     408        );
     409
     410        $this->end_controls_section();
     411
     412        $this->start_controls_section(
     413            'x_basic_options',
     414            array(
     415                'label'     => __( 'X Basic Options', 'custom-iframe' ),
     416                'tab'       => Controls_Manager::TAB_CONTENT,
     417                'condition' => array(
     418                    'source' => 'X',
     419                ),
     420            )
     421        );
     422
     423        $this->add_control(
     424            'x_basic_options_pro',
     425            array(
     426                'label'       => '',
     427                'type'        => Controls_Manager::RAW_HTML,
     428                'default'     => '',
     429                'description' => '',
     430                'raw'         => $this->pro_plugin_notice(),
     431                'condition' => array(
     432                    'source' => 'X',
     433                ),
     434            )
     435        );
     436
     437        $this->end_controls_section();
     438
     439        $this->start_controls_section(
     440            'x_advanced_options',
     441            array(
     442                'label'     => __( 'X Basic Options', 'custom-iframe' ),
     443                'tab'       => Controls_Manager::TAB_CONTENT,
     444                'condition' => array(
     445                    'source' => 'X',
     446                ),
     447            )
     448        );
     449
     450        $this->add_control(
     451            'x_advance_options_pro',
     452            array(
     453                'label'       => '',
     454                'type'        => Controls_Manager::RAW_HTML,
     455                'default'     => '',
     456                'description' => '',
     457                'raw'         => $this->pro_plugin_notice(),
     458                'condition' => array(
     459                    'source' => 'X',
     460                ),
     461            )
     462        );
     463
     464        $this->end_controls_section();
     465
     466        $this->start_controls_section(
     467            'basic_options',
     468            array(
     469                'label'     => __( 'Basic Options', 'custom-iframe' ),
     470                'tab'       => Controls_Manager::TAB_CONTENT,
     471                'condition' => array(
     472                    'source' => 'Youtube',
     473                ),
     474            )
     475        );
     476
     477        $this->add_control(
     478            'youtube_basic_options_pro',
     479            array(
     480                'label'       => '',
     481                'type'        => Controls_Manager::RAW_HTML,
     482                'default'     => '',
     483                'description' => '',
     484                'raw'         => $this->pro_plugin_notice(),
     485                'condition' => array(
     486                    'source' => 'Youtube',
     487                ),
     488            )
     489        );
     490
     491        $this->end_controls_section();
     492
     493        $this->start_controls_section(
     494            'youtube_playback_section',
     495            array(
     496                'label'     => __( 'YouTube Playback', 'custom-iframe' ),
     497                'tab'       => Controls_Manager::TAB_CONTENT,
     498                'condition' => array(
     499                    'source' => 'Youtube',
     500                ),
     501            )
     502        );
     503
     504        $this->add_control(
     505            'youtube_playback_section_pro',
     506            array(
     507                'label'       => '',
     508                'type'        => Controls_Manager::RAW_HTML,
     509                'default'     => '',
     510                'description' => '',
     511                'raw'         => $this->pro_plugin_notice(),
     512                'condition' => array(
     513                    'source' => 'Youtube',
     514                ),
     515            )
     516        );
     517
     518        $this->end_controls_section();
     519
     520        $this->start_controls_section(
     521            'youtube_appearance_section',
     522            array(
     523                'label'     => __( 'YouTube Appearance', 'custom-iframe' ),
     524                'tab'       => Controls_Manager::TAB_CONTENT,
     525                'condition' => array(
     526                    'source' => 'Youtube',
     527                ),
     528            )
     529        );
     530
     531        $this->add_control(
     532            'youtube_appearance_section_pro',
     533            array(
     534                'label'       => '',
     535                'type'        => Controls_Manager::RAW_HTML,
     536                'default'     => '',
     537                'description' => '',
     538                'raw'         => $this->pro_plugin_notice(),
     539                'condition' => array(
     540                    'source' => 'Youtube',
     541                ),
     542            )
     543        );
     544
     545        $this->end_controls_section();
     546
     547        $this->start_controls_section(
     548            'youtube_advanced_section',
     549            array(
     550                'label'     => __( 'YouTube Advanced', 'custom-iframe' ),
     551                'tab'       => Controls_Manager::TAB_CONTENT,
     552                'condition' => array(
     553                    'source' => 'Youtube',
     554                ),
     555            )
     556        );
     557
     558        $this->add_control(
     559            'youtube_advanced_section_pro',
     560            array(
     561                'label'       => '',
     562                'type'        => Controls_Manager::RAW_HTML,
     563                'default'     => '',
     564                'description' => '',
     565                'raw'         => $this->pro_plugin_notice(),
     566                'condition' => array(
     567                    'source' => 'Youtube',
     568                ),
     569            )
     570        );
     571
     572        $this->end_controls_section();
     573
     574        $this->start_controls_section(
     575            'youtube_captions_section',
     576            array(
     577                'label'     => __( 'YouTube Captions', 'custom-iframe' ),
     578                'tab'       => Controls_Manager::TAB_CONTENT,
     579                'condition' => array(
     580                    'source' => 'Youtube',
     581                ),
     582            )
     583        );
     584
     585        $this->add_control(
     586            'youtube_captions_section_pro',
     587            array(
     588                'label'       => '',
     589                'type'        => Controls_Manager::RAW_HTML,
     590                'default'     => '',
     591                'description' => '',
     592                'raw'         => $this->pro_plugin_notice(),
     593                'condition' => array(
     594                    'source' => 'Youtube',
     595                ),
     596            )
     597        );
     598
     599        $this->end_controls_section();
     600
     601        $this->start_controls_section(
     602            'vimeo_basic_options',
     603            array(
     604                'label'     => __( 'Vimeo Basic Options', 'custom-iframe' ),
     605                'tab'       => Controls_Manager::TAB_CONTENT,
     606                'condition' => array(
     607                    'source' => 'Vimeo',
     608                ),
     609            )
     610        );
     611
     612        $this->add_control(
     613            'vimeo_basic_options_pro',
     614            array(
     615                'label'       => '',
     616                'type'        => Controls_Manager::RAW_HTML,
     617                'default'     => '',
     618                'description' => '',
     619                'raw'         => $this->pro_plugin_notice(),
     620                'condition' => array(
     621                    'source' => 'Vimeo',
     622                ),
     623            )
     624        );
     625
     626        $this->end_controls_section();
     627
     628        $this->start_controls_section(
     629            'vimeo_playback_options',
     630            array(
     631                'label'     => __( 'Vimeo Playback', 'custom-iframe' ),
     632                'tab'       => Controls_Manager::TAB_CONTENT,
     633                'condition' => array(
     634                    'source' => 'Vimeo',
     635                ),
     636            )
     637        );
     638
     639        $this->add_control(
     640            'vimeo_playback_options_pro',
     641            array(
     642                'label'       => '',
     643                'type'        => Controls_Manager::RAW_HTML,
     644                'default'     => '',
     645                'description' => '',
     646                'raw'         => $this->pro_plugin_notice(),
     647                'condition' => array(
     648                    'source' => 'Vimeo',
     649                ),
     650            )
     651        );
     652
     653        $this->end_controls_section();
     654
     655        $this->start_controls_section(
     656            'vimeo_appearance_options',
     657            array(
     658                'label'     => __( 'Vimeo Appearance', 'custom-iframe' ),
     659                'tab'       => Controls_Manager::TAB_CONTENT,
     660                'condition' => array(
     661                    'source' => 'Vimeo',
     662                ),
     663            )
     664        );
     665
     666        $this->add_control(
     667            'vimeo_appearance_options_pro',
     668            array(
     669                'label'       => '',
     670                'type'        => Controls_Manager::RAW_HTML,
     671                'default'     => '',
     672                'description' => '',
     673                'raw'         => $this->pro_plugin_notice(),
     674                'condition' => array(
     675                    'source' => 'Vimeo',
     676                ),
    370677            )
    371678        );
     
    7261033                    'custom-iframe'
    7271034                ),
     1035                'separator'   => 'after',
    7281036                'label_block' => true,
    729                 'separator'   => 'before',
     1037            )
     1038        );
     1039
     1040        $this->add_control(
     1041            'sandbox',
     1042            array(
     1043                'label'   => __( 'Enable Sandbox', 'custom-iframe' ),
     1044                'type'    => Controls_Manager::SWITCHER,
     1045                'default' => 'no',
     1046            )
     1047        );
     1048
     1049        $this->add_control(
     1050            'sandbox_pro',
     1051            array(
     1052                'label'       => '',
     1053                'type'        => Controls_Manager::RAW_HTML,
     1054                'default'     => '',
     1055                'description' => '',
     1056                'raw'         => $this->pro_plugin_notice(),
     1057                'condition' => array(
     1058                    'sandbox' => 'yes',
     1059                ),
     1060            )
     1061        );
     1062
     1063        $this->add_control(
     1064            'custif_custom_iframe_attributes',
     1065            array(
     1066                'label'   => __( 'Attributes', 'custom-iframe' ),
     1067                'type'    => Controls_Manager::SWITCHER,
     1068                'default' => 'no',
     1069            )
     1070        );
     1071
     1072        $this->add_control(
     1073            'custif_custom_iframe_attributes_pro',
     1074            array(
     1075                'label'       => '',
     1076                'type'        => Controls_Manager::RAW_HTML,
     1077                'default'     => '',
     1078                'description' => '',
     1079                'raw'         => $this->pro_plugin_notice(),
     1080                'condition' => array(
     1081                    'custif_custom_iframe_attributes' => 'yes',
     1082                ),
    7301083            )
    7311084        );
     
    7511104                ),
    7521105                'separator'  => 'before',
    753             )
    754         );
    755 
    756         $this->add_control(
    757             'align',
    758             array(
    759                 'label'        => __( 'Alignment', 'custom-iframe' ),
    760                 'type'         => Controls_Manager::CHOOSE,
    761                 'options'      => array(
    762                     'left'   => array(
    763                         'title' => __( 'Left', 'custom-iframe' ),
    764                         'icon'  => 'eicon-text-align-left',
    765                     ),
    766                     'center' => array(
    767                         'title' => __( 'Center', 'custom-iframe' ),
    768                         'icon'  => 'eicon-text-align-center',
    769                     ),
    770                     'right'  => array(
    771                         'title' => __( 'Right', 'custom-iframe' ),
    772                         'icon'  => 'eicon-text-align-right',
    773                     ),
    774                 ),
    775                 'prefix_class' => 'custif-iframe-align-',
    776                 'separator'    => 'before',
    7771106            )
    7781107        );
     
    8091138        );
    8101139
     1140        $this->add_control(
     1141            'align',
     1142            array(
     1143                'label'        => __( 'Alignment', 'custom-iframe' ),
     1144                'type'         => Controls_Manager::CHOOSE,
     1145                'options'      => array(
     1146                    'left'   => array(
     1147                        'title' => __( 'Left', 'custom-iframe' ),
     1148                        'icon'  => 'eicon-text-align-left',
     1149                    ),
     1150                    'center' => array(
     1151                        'title' => __( 'Center', 'custom-iframe' ),
     1152                        'icon'  => 'eicon-text-align-center',
     1153                    ),
     1154                    'right'  => array(
     1155                        'title' => __( 'Right', 'custom-iframe' ),
     1156                        'icon'  => 'eicon-text-align-right',
     1157                    ),
     1158                ),
     1159                'prefix_class' => 'custif-iframe-align-',
     1160                'separator'    => 'before',
     1161            )
     1162        );
     1163
    8111164        $this->end_controls_section();
    8121165
     
    8411194            array(
    8421195                'name'     => 'iframe_border',
    843                 'selector' => '{{WRAPPER}} iframe',
     1196                'selector' => '{{WRAPPER}} iframe,{{WRAPPER}} .custif-iframe-wrapper',
    8441197            )
    8451198        );
     
    8691222            array(
    8701223                'name'     => 'iframe_box_shadow',
    871                 'selector' => '{{WRAPPER}} iframe',
     1224                'selector' => '{{WRAPPER}} .custif-iframe-wrapper',
    8721225            )
    8731226        );
     
    9291282        ?>
    9301283        <div class="custif-iframe-wrapper" id="<?php echo esc_attr( $iframe_id ); ?>">
    931             <?php if ( ( ! empty( $source ) && 'default' === $source ) || ( 'url' === $pdf_type && ! empty( $settings['pdf_file_link']['url'] ) ) ) : ?>
     1284            <?php if ( ( ! empty( $source ) && 'Pdf' !== $source ) || ( 'url' === $pdf_type && ! empty( $settings['pdf_file_link']['url'] ) ) ) : ?>
    9321285                <?php if ( ! empty( $url ) ) : ?>
    9331286                    <?php
  • custom-iframe/tags/1.0.13/widget/class-need-help-controller.php

    r3262072 r3342477  
    2020    array(
    2121        'type' => Controls_Manager::RAW_HTML,
    22         'raw' => wp_kses_post( "<a class='' href='https://wordpress.org/support/plugin/custom-iframe/?utm_source=elementor&utm_medium=needhelp&utm_campaign=custom_iframe&utm_id=wp_02' target='_blank' rel='noopener noreferrer'> Raise a Ticket </a>" ),
     22        'raw' => wp_kses_post( "<a class='' href='https://wordpress.org/support/plugin/custom-iframe/' target='_blank' rel='noopener noreferrer'> Raise a Ticket </a>" ),
    2323    )
    2424);
     
    2727    array(
    2828        'type' => Controls_Manager::RAW_HTML,
    29         'raw' => wp_kses_post( "<a class='' href='https://coderzstudio.com/plugin-doc/custom-iframe/?utm_source=elementor&utm_medium=needhelp&utm_campaign=custom_iframe&utm_id=wp_02' target='_blank' rel='noopener noreferrer'> Read Documentation </a>" ),
     29        'raw' => wp_kses_post( "<a class='' href='https://customiframe.com/docs/?utm_source=elementor&utm_medium=widget_settings&utm_campaign=read_docs' target='_blank' rel='noopener noreferrer'> Read Documentation </a>" ),
    3030    )
    3131);
     
    3434    array(
    3535        'type' => Controls_Manager::RAW_HTML,
    36         'raw' => wp_kses_post( "<a class='' href='https://coderzstudio.com/contact/?utm_source=elementor&utm_medium=needhelp&utm_campaign=custom_iframe&utm_id=wp_02' target='_blank' rel='noopener noreferrer'> Suggest Feature </a>" ),
     36        'raw' => wp_kses_post( "<a class='' href='https://customiframe.com/contact/?utm_source=elementor&utm_medium=widget_settings&utm_campaign=suggest_feature' target='_blank' rel='noopener noreferrer'> Suggest Feature </a>" ),
    3737    )
    3838);
     
    4141    array(
    4242        'type' => Controls_Manager::RAW_HTML,
    43         'raw' => wp_kses_post( "<a class='' href='https://coderzstudio.com/contact/?utm_source=elementor&utm_medium=needhelp&utm_campaign=custom_iframe&utm_id=wp_02' target='_blank' rel='noopener noreferrer'> Didn't work like you wanted? Report Issue </a>" ),
     43        'raw' => wp_kses_post( "<a class='' href='https://customiframe.com/support/?utm_source=elementor&utm_medium=widget_settings&utm_campaign=support_links&utm_content=report_issue' target='_blank' rel='noopener noreferrer'> Didn't work like you wanted? Report Issue </a>" ),
    4444    )
    4545);
  • custom-iframe/trunk/assets/css/admin/admin.css

    r3314097 r3342477  
    240240
    241241.step-title {
    242     color: var(--primary);
     242    color: #100D3F;
    243243    font-weight: 500;
    244244    margin-bottom: 10px;
     
    482482.pro-features-list .coming-soon {
    483483    font-size: 12px;
    484     color: #4f46e5;
     484    color: #100D3F;
    485485    margin-left: 5px;
    486486    font-style: italic;
    487487    white-space: nowrap;
     488    font-weight: 500;
    488489}
    489490
  • custom-iframe/trunk/assets/js/widget.js

    r3277337 r3342477  
    1313        // Auto height only works when cross origin properly set
    1414        if (autoHeight === 'yes') {
    15             document.addEventListener('lazyshow', function (e) {
    16                 if (e.target === iframe) {
    17                     try {
    18                         var height = iframe.contentDocument.querySelector('html').scrollHeight;
    19                         iframe.style.height = height + 'px';
    20                     } catch (e) {
    21                         console.log('Cross origin iframe detected');
    22                     }
    23                 }
    24             });
     15            try {
     16                var height = iframe.contentDocument.querySelector('html').scrollHeight;
     17                iframe.style.height = height + 'px';
     18            } catch (e) {
     19                console.log('Cross origin iframe detected');
     20            }
    2521        }
    2622
  • custom-iframe/trunk/custom-iframe-widget.php

    r3325265 r3342477  
    44 * Plugin URI: https://coderzstudio.com/plugins/custom-iframe
    55 * Description: An advanced Elementor widget to embed iFrames with customizable options.
    6  * Version: 1.0.12
     6 * Version: 1.0.13
    77 * Author: Coderz Studio
    88 * Author URI: https://coderzstudio.com/
     
    1919 * Requires at least: 5.8
    2020 * Requires PHP: 7.4
    21  * Elementor tested up to: 3.30
    22  * Elementor Pro tested up to: 3.30
     21 * Elementor tested up to: 3.31
     22 * Elementor Pro tested up to: 3.31
    2323 */
    2424
     
    5151
    5252// Define constants.
    53 define( 'CUSTIF_VERSION', '1.0.12' );
     53define( 'CUSTIF_VERSION', '1.0.13' );
    5454define( 'CUSTIF_URL', plugin_dir_url( __FILE__ ) );
    5555define( 'CUSTIF_PATH', plugin_dir_path( __FILE__ ) );
  • custom-iframe/trunk/includes/class-custif-admin.php

    r3314097 r3342477  
    232232                                                <li>🐦 <?php esc_html_e( 'Enhanced X (Twitter) Options', 'custom-iframe' ); ?></li>
    233233                                                <li>🎨 <?php esc_html_e( 'Custom Watermarks', 'custom-iframe' ); ?> <span class="coming-soon">(<?php esc_html_e( 'coming soon', 'custom-iframe' ); ?>)</span></li>
    234                                                 <li>📚 <?php esc_html_e( '3D Flipbook PDF Viewer', 'custom-iframe' ); ?> <span class="coming-soon">(<?php esc_html_e( 'coming soon', 'custom-iframe' ); ?>)</span></li>
     234                                                <li>📚 <?php esc_html_e( '3D Flipbook PDF', 'custom-iframe' ); ?> <span class="coming-soon">(<?php esc_html_e( 'coming soon', 'custom-iframe' ); ?>)</span></li>
    235235                                                <li>📱 <?php esc_html_e( 'Device Frame Display', 'custom-iframe' ); ?> <span class="coming-soon">(<?php esc_html_e( 'coming soon', 'custom-iframe' ); ?>)</span></li>
    236236                                            </ul>
     
    291291                        <div class="resource-card">
    292292                            <div class="resource-title"><?php esc_html_e( 'Documentation', 'custom-iframe' ); ?></div>
    293                             <button class="resource-action"><a href="https://coderzstudio.com/plugin-doc/custom-iframe/?utm_source=wordpress&utm_medium=dashboard&utm_campaign=custom_iframe&utm_id=wp_04" target="_blank"><?php esc_html_e( 'Read Now', 'custom-iframe' ); ?></a></button>
     293                            <button class="resource-action"><a href="https://customiframe.com/docs/?utm_source=plugin&utm_medium=wpdashboard&utm_campaign=read_docs" target="_blank"><?php esc_html_e( 'Read Now', 'custom-iframe' ); ?></a></button>
    294294                        </div>
    295295
  • custom-iframe/trunk/includes/class-deactivate-feedback.php

    r3311922 r3342477  
    198198
    199199            $reason_key = ! empty( $_POST['reason_key'] ) ? sanitize_text_field( wp_unslash( $_POST['reason_key'] ) ) : '';
    200             $reason_text = ! empty( $_POST[ 'reason_' . $reason_key ] ) ? sanitize_text_field( wp_unslash( $_POST[ 'reason_' . $reason_key ] ) ) : '';
     200            $reason_text = ! empty( $_POST['reason_text'] ) ? sanitize_text_field( wp_unslash( $_POST['reason_text'] ) ) : '';
    201201
    202202            $api_params = array(
    203203                'count' => 1,
    204                 'reason' => $reason_text ? $reason_text : $reason_key,
     204                'reason' => $reason_key . ( ! empty( $reason_text ) ? ': ' . $reason_text : '' ),
    205205            );
    206206
  • custom-iframe/trunk/includes/class-notice-manager.php

    r3311922 r3342477  
    126126        <p>
    127127            <a href="https://youtu.be/EB6MgWB6zLA?si=IqG88NkkM_DC84Ds" target="_blank">🎥 Video Tutorial</a> &nbsp;|&nbsp;
    128             <a href="https://coderzstudio.com/plugins/custom-iframe/demo/?utm_source=wordpress&utm_medium=dashboard&utm_campaign=custom_iframe&utm_id=wp_03" target="_blank">🔗 Live Demo</a>
     128            <a href="https://customiframe.com/demo/?utm_source=elementor&utm_medium=widget_settings&utm_campaign=demo" target="_blank">🔗 Live Demo</a>
    129129        </p>
    130130    </div>';
     
    213213        <?php
    214214    }
     215
     216    /**
     217     * Get pro plugin notice HTML.
     218     *
     219     * @return string Pro plugin notice HTML.
     220     * @since 1.0.13
     221     */
     222    public function pro_plugin_notice() {
     223        return sprintf(
     224            '<div class="custif-pro-notice">
     225            <div class="notice-content">
     226                <span class="notice-text">%s</span>
     227            </div>
     228            <div class="notice-actions">
     229                <a href="%s" target="_blank" class="upgrade-link">%s</a>
     230            </div>
     231        </div>
     232        <style>
     233            .custif-pro-notice {
     234                background: #f8fafc;
     235                border: 1px solid #e2e8f0;
     236                border-radius: 6px;
     237                padding: 10px 14px;
     238                margin: 8px 0;
     239                display: flex;
     240                align-items: center;
     241                justify-content: space-between;
     242                font-size: 12px;
     243                line-height: 1.3;
     244            }
     245            .custif-pro-notice .notice-content {
     246                display: flex;
     247                align-items: center;
     248                gap: 6px;
     249                font-size: 12px;
     250            }
     251            .custif-pro-notice .pro-badge {
     252                background: #6366f1;
     253                color: white;
     254                padding: 1px 4px;
     255                border-radius: 2px;
     256                font-size: 9px;
     257                font-weight: 600;
     258                text-transform: uppercase;
     259                letter-spacing: 0.3px;
     260            }
     261            .custif-pro-notice .notice-text {
     262                color: #64748b;
     263                font-weight: 400;
     264            }
     265            .custif-pro-notice .notice-actions {
     266                display: flex;
     267                align-items: center;
     268                gap: 8px;
     269                flex-shrink: 0;
     270            }
     271            .custif-pro-notice .demo-link,
     272            .custif-pro-notice .upgrade-link {
     273                text-decoration: none;
     274                font-weight: 500;
     275                font-size: 12px;
     276                padding: 3px 10px;
     277                border-radius: 5px;
     278                transition: all 0.2s;
     279            }
     280            .custif-pro-notice .demo-link {
     281                color: #64748b;
     282                border: 1px solid #cbd5e1;
     283            }
     284            .custif-pro-notice .demo-link:hover {
     285                background: #f1f5f9;
     286                color: #475569;
     287            }
     288            .custif-pro-notice .upgrade-link {
     289                color: #6366f1;
     290                background: #f0f4ff;
     291            }
     292            .custif-pro-notice .upgrade-link:hover {
     293                background: #e0e7ff;
     294                color: #4f46e5;
     295            }
     296        </style>',
     297            esc_html( sprintf( __( 'Upgrade to unlock this option', 'custom-iframe-widget-for-elementor' ) ) ),
     298            esc_url( 'https://customiframe.com/early-bird/?utm_source=plugin&utm_medium=wpdashboard&utm_campaign=upgrade_cta' ),
     299            esc_html__( 'Get Pro', 'custom-iframe-widget-for-elementor' )
     300        );
     301    }
    215302}
    216303
  • custom-iframe/trunk/languages/custom-iframe.pot

    r3325265 r3342477  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: Custom iFrame 1.0.12\n"
     5"Project-Id-Version: Custom iFrame 1.0.13\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/custom-iframe\n"
    77"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
     
    1010"Content-Type: text/plain; charset=UTF-8\n"
    1111"Content-Transfer-Encoding: 8bit\n"
    12 "POT-Creation-Date: 2025-07-09T20:36:45+00:00\n"
     12"POT-Creation-Date: 2025-08-10T16:06:36+00:00\n"
    1313"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    1414"X-Generator: WP-CLI 2.11.0\n"
     
    1919#: includes/class-custif-admin.php:31
    2020#: includes/class-custif-admin.php:32
    21 #: widget/class-custom-iframe-widget.php:77
     21#: widget/class-custom-iframe-widget.php:96
    2222msgid "Custom iFrame"
    2323msgstr ""
     
    134134
    135135#: includes/class-custif-admin.php:234
    136 msgid "3D Flipbook PDF Viewer"
     136msgid "3D Flipbook PDF"
    137137msgstr ""
    138138
     
    299299msgstr ""
    300300
    301 #: widget/class-custom-iframe-widget.php:132
     301#: widget/class-custom-iframe-widget.php:151
    302302msgid "Content"
    303303msgstr ""
    304304
    305 #: widget/class-custom-iframe-widget.php:140
     305#: widget/class-custom-iframe-widget.php:159
    306306msgid "Source Type"
    307307msgstr ""
    308308
    309 #: widget/class-custom-iframe-widget.php:144
     309#: widget/class-custom-iframe-widget.php:163
    310310msgid "Default"
    311311msgstr ""
    312312
    313 #: widget/class-custom-iframe-widget.php:145
     313#: widget/class-custom-iframe-widget.php:164
    314314msgid "Pdf"
    315315msgstr ""
    316316
    317 #: widget/class-custom-iframe-widget.php:154
     317#: widget/class-custom-iframe-widget.php:165
     318msgid "X ( Pro )"
     319msgstr ""
     320
     321#: widget/class-custom-iframe-widget.php:166
     322msgid "YouTube ( Pro )"
     323msgstr ""
     324
     325#: widget/class-custom-iframe-widget.php:167
     326msgid "Vimeo ( Pro )"
     327msgstr ""
     328
     329#: widget/class-custom-iframe-widget.php:175
    318330msgid "Source URL"
    319331msgstr ""
    320332
    321 #: widget/class-custom-iframe-widget.php:159
     333#: widget/class-custom-iframe-widget.php:180
    322334msgid "https://example.com"
    323335msgstr ""
    324336
    325 #: widget/class-custom-iframe-widget.php:172
     337#: widget/class-custom-iframe-widget.php:193
    326338msgid "PDF Source"
    327339msgstr ""
    328340
    329 #: widget/class-custom-iframe-widget.php:176
     341#: widget/class-custom-iframe-widget.php:197
    330342msgid "File"
    331343msgstr ""
    332344
    333 #: widget/class-custom-iframe-widget.php:177
    334 #: widget/class-custom-iframe-widget.php:210
     345#: widget/class-custom-iframe-widget.php:198
     346#: widget/class-custom-iframe-widget.php:231
    335347msgid "URL"
    336348msgstr ""
    337349
    338 #: widget/class-custom-iframe-widget.php:188
     350#: widget/class-custom-iframe-widget.php:209
    339351msgid "Upload File"
    340352msgstr ""
    341353
    342 #: widget/class-custom-iframe-widget.php:196
     354#: widget/class-custom-iframe-widget.php:217
    343355msgid "Upload a file or pick one from your media library for embed. Supported File Type: PDF"
    344356msgstr ""
    345357
    346 #: widget/class-custom-iframe-widget.php:212
     358#: widget/class-custom-iframe-widget.php:233
    347359msgid "https://your-link.com/file.pdf"
    348360msgstr ""
    349361
    350 #: widget/class-custom-iframe-widget.php:235
     362#: widget/class-custom-iframe-widget.php:256
    351363msgid "URL PDFs can't customize  toolbar options due to external source limits"
    352364msgstr ""
    353365
    354 #: widget/class-custom-iframe-widget.php:249
     366#: widget/class-custom-iframe-widget.php:270
    355367msgid "Height"
    356368msgstr ""
    357369
    358 #: widget/class-custom-iframe-widget.php:283
     370#: widget/class-custom-iframe-widget.php:291
     371msgid "height is not supported when using the X Embed Post."
     372msgstr ""
     373
     374#: widget/class-custom-iframe-widget.php:305
    359375msgid "Auto Height"
    360376msgstr ""
    361377
    362 #: widget/class-custom-iframe-widget.php:285
    363 #: widget/class-custom-iframe-widget.php:334
    364 #: widget/class-custom-iframe-widget.php:350
     378#: widget/class-custom-iframe-widget.php:307
     379#: widget/class-custom-iframe-widget.php:359
     380#: widget/class-custom-iframe-widget.php:387
    365381msgid "Yes"
    366382msgstr ""
    367383
    368 #: widget/class-custom-iframe-widget.php:286
    369 #: widget/class-custom-iframe-widget.php:335
    370 #: widget/class-custom-iframe-widget.php:351
     384#: widget/class-custom-iframe-widget.php:308
     385#: widget/class-custom-iframe-widget.php:360
     386#: widget/class-custom-iframe-widget.php:388
    371387msgid "No"
    372388msgstr ""
    373389
    374 #: widget/class-custom-iframe-widget.php:295
     390#: widget/class-custom-iframe-widget.php:312
     391msgid "Auto height only works when cross domain with \"allow origin all in header\"."
     392msgstr ""
     393
     394#: widget/class-custom-iframe-widget.php:319
    375395msgid "Show Scrollbars"
    376396msgstr ""
    377397
    378 #: widget/class-custom-iframe-widget.php:307
     398#: widget/class-custom-iframe-widget.php:332
    379399msgid "Refresh Interval (seconds)"
    380400msgstr ""
    381401
    382 #: widget/class-custom-iframe-widget.php:312
     402#: widget/class-custom-iframe-widget.php:337
    383403msgid "Set 0 to disable auto-refresh"
    384404msgstr ""
    385405
    386 #: widget/class-custom-iframe-widget.php:324
     406#: widget/class-custom-iframe-widget.php:349
    387407msgid "Smart Load"
    388408msgstr ""
    389409
    390 #: widget/class-custom-iframe-widget.php:332
    391 #: widget/class-custom-iframe-widget.php:348
     410#: widget/class-custom-iframe-widget.php:357
     411#: widget/class-custom-iframe-widget.php:385
    392412msgid "Lazy Load"
    393413msgstr ""
    394414
    395 #: widget/class-custom-iframe-widget.php:364
     415#: widget/class-custom-iframe-widget.php:401
    396416msgid "Placeholder Image"
    397417msgstr ""
    398418
    399 #: widget/class-custom-iframe-widget.php:378
     419#: widget/class-custom-iframe-widget.php:415
     420#: widget/class-custom-iframe-widget.php:442
     421msgid "X Basic Options"
     422msgstr ""
     423
     424#: widget/class-custom-iframe-widget.php:469
     425msgid "Basic Options"
     426msgstr ""
     427
     428#: widget/class-custom-iframe-widget.php:496
     429msgid "YouTube Playback"
     430msgstr ""
     431
     432#: widget/class-custom-iframe-widget.php:523
     433msgid "YouTube Appearance"
     434msgstr ""
     435
     436#: widget/class-custom-iframe-widget.php:550
     437msgid "YouTube Advanced"
     438msgstr ""
     439
     440#: widget/class-custom-iframe-widget.php:577
     441msgid "YouTube Captions"
     442msgstr ""
     443
     444#: widget/class-custom-iframe-widget.php:604
     445msgid "Vimeo Basic Options"
     446msgstr ""
     447
     448#: widget/class-custom-iframe-widget.php:631
     449msgid "Vimeo Playback"
     450msgstr ""
     451
     452#: widget/class-custom-iframe-widget.php:658
     453msgid "Vimeo Appearance"
     454msgstr ""
     455
     456#: widget/class-custom-iframe-widget.php:685
    400457msgid "Display Options"
    401458msgstr ""
    402459
    403 #: widget/class-custom-iframe-widget.php:390
     460#: widget/class-custom-iframe-widget.php:697
    404461msgid "Theme"
    405462msgstr ""
    406463
    407 #: widget/class-custom-iframe-widget.php:394
     464#: widget/class-custom-iframe-widget.php:701
    408465msgid "System Default"
    409466msgstr ""
    410467
    411 #: widget/class-custom-iframe-widget.php:395
     468#: widget/class-custom-iframe-widget.php:702
    412469msgid "Dark"
    413470msgstr ""
    414471
    415 #: widget/class-custom-iframe-widget.php:396
     472#: widget/class-custom-iframe-widget.php:703
    416473msgid "Light"
    417474msgstr ""
    418475
    419 #: widget/class-custom-iframe-widget.php:397
    420 #: widget/class-custom-iframe-widget.php:431
     476#: widget/class-custom-iframe-widget.php:704
     477#: widget/class-custom-iframe-widget.php:738
    421478msgid "Custom"
    422479msgstr ""
    423480
    424 #: widget/class-custom-iframe-widget.php:409
     481#: widget/class-custom-iframe-widget.php:716
    425482msgid "Custom Color"
    426483msgstr ""
    427484
    428 #: widget/class-custom-iframe-widget.php:423
     485#: widget/class-custom-iframe-widget.php:730
    429486msgid "Zoom"
    430487msgstr ""
    431488
    432 #: widget/class-custom-iframe-widget.php:427
     489#: widget/class-custom-iframe-widget.php:734
    433490msgid "Automatic Zoom"
    434491msgstr ""
    435492
    436 #: widget/class-custom-iframe-widget.php:428
     493#: widget/class-custom-iframe-widget.php:735
    437494msgid "Actual Size"
    438495msgstr ""
    439496
    440 #: widget/class-custom-iframe-widget.php:429
     497#: widget/class-custom-iframe-widget.php:736
    441498msgid "Page Fit"
    442499msgstr ""
    443500
    444 #: widget/class-custom-iframe-widget.php:430
     501#: widget/class-custom-iframe-widget.php:737
    445502msgid "Page Width"
    446503msgstr ""
    447504
    448 #: widget/class-custom-iframe-widget.php:432
     505#: widget/class-custom-iframe-widget.php:739
    449506msgid "50%"
    450507msgstr ""
    451508
    452 #: widget/class-custom-iframe-widget.php:433
     509#: widget/class-custom-iframe-widget.php:740
    453510msgid "75%"
    454511msgstr ""
    455512
    456 #: widget/class-custom-iframe-widget.php:434
     513#: widget/class-custom-iframe-widget.php:741
    457514msgid "100%"
    458515msgstr ""
    459516
    460 #: widget/class-custom-iframe-widget.php:435
     517#: widget/class-custom-iframe-widget.php:742
    461518msgid "125%"
    462519msgstr ""
    463520
    464 #: widget/class-custom-iframe-widget.php:436
     521#: widget/class-custom-iframe-widget.php:743
    465522msgid "150%"
    466523msgstr ""
    467524
    468 #: widget/class-custom-iframe-widget.php:437
     525#: widget/class-custom-iframe-widget.php:744
    469526msgid "200%"
    470527msgstr ""
    471528
    472 #: widget/class-custom-iframe-widget.php:438
     529#: widget/class-custom-iframe-widget.php:745
    473530msgid "300%"
    474531msgstr ""
    475532
    476 #: widget/class-custom-iframe-widget.php:439
     533#: widget/class-custom-iframe-widget.php:746
    477534msgid "400%"
    478535msgstr ""
    479536
    480 #: widget/class-custom-iframe-widget.php:441
     537#: widget/class-custom-iframe-widget.php:748
    481538msgid "Note: Initial zoom value when the file is loaded."
    482539msgstr ""
    483540
    484 #: widget/class-custom-iframe-widget.php:452
     541#: widget/class-custom-iframe-widget.php:759
    485542msgid "Custom Zoom"
    486543msgstr ""
    487544
    488 #: widget/class-custom-iframe-widget.php:465
     545#: widget/class-custom-iframe-widget.php:772
    489546msgid "Default Selection Tool"
    490547msgstr ""
    491548
    492 #: widget/class-custom-iframe-widget.php:468
     549#: widget/class-custom-iframe-widget.php:775
    493550msgid "Text Tool"
    494551msgstr ""
    495552
    496 #: widget/class-custom-iframe-widget.php:469
     553#: widget/class-custom-iframe-widget.php:776
    497554msgid "Hand Tool"
    498555msgstr ""
    499556
    500 #: widget/class-custom-iframe-widget.php:482
     557#: widget/class-custom-iframe-widget.php:789
    501558msgid "Default Scrolling"
    502559msgstr ""
    503560
    504 #: widget/class-custom-iframe-widget.php:485
     561#: widget/class-custom-iframe-widget.php:792
    505562msgid "Page Scrolling"
    506563msgstr ""
    507564
    508 #: widget/class-custom-iframe-widget.php:486
     565#: widget/class-custom-iframe-widget.php:793
    509566msgid "Vertical Scrolling"
    510567msgstr ""
    511568
    512 #: widget/class-custom-iframe-widget.php:487
     569#: widget/class-custom-iframe-widget.php:794
    513570msgid "Horizontal Scrolling"
    514571msgstr ""
    515572
    516 #: widget/class-custom-iframe-widget.php:488
     573#: widget/class-custom-iframe-widget.php:795
    517574msgid "Wrapped Scrolling"
    518575msgstr ""
    519576
    520 #: widget/class-custom-iframe-widget.php:501
     577#: widget/class-custom-iframe-widget.php:808
    521578msgid "Default Spreads"
    522579msgstr ""
    523580
    524 #: widget/class-custom-iframe-widget.php:504
     581#: widget/class-custom-iframe-widget.php:811
    525582msgid "No Spreads"
    526583msgstr ""
    527584
    528 #: widget/class-custom-iframe-widget.php:505
     585#: widget/class-custom-iframe-widget.php:812
    529586msgid "Odd Spreads"
    530587msgstr ""
    531588
    532 #: widget/class-custom-iframe-widget.php:506
     589#: widget/class-custom-iframe-widget.php:813
    533590msgid "Even Spreads"
    534591msgstr ""
    535592
    536 #: widget/class-custom-iframe-widget.php:522
     593#: widget/class-custom-iframe-widget.php:829
    537594msgid "Toolbar Settings"
    538595msgstr ""
    539596
    540 #: widget/class-custom-iframe-widget.php:534
     597#: widget/class-custom-iframe-widget.php:841
    541598msgid "Toolbar"
    542599msgstr ""
    543600
    544 #: widget/class-custom-iframe-widget.php:536
    545 #: widget/class-custom-iframe-widget.php:577
    546 #: widget/class-custom-iframe-widget.php:594
    547 #: widget/class-custom-iframe-widget.php:611
    548 #: widget/class-custom-iframe-widget.php:628
    549 #: widget/class-custom-iframe-widget.php:645
    550 #: widget/class-custom-iframe-widget.php:662
    551 #: widget/class-custom-iframe-widget.php:679
    552 #: widget/class-custom-iframe-widget.php:696
     601#: widget/class-custom-iframe-widget.php:843
     602#: widget/class-custom-iframe-widget.php:884
     603#: widget/class-custom-iframe-widget.php:901
     604#: widget/class-custom-iframe-widget.php:918
     605#: widget/class-custom-iframe-widget.php:935
     606#: widget/class-custom-iframe-widget.php:952
     607#: widget/class-custom-iframe-widget.php:969
     608#: widget/class-custom-iframe-widget.php:986
     609#: widget/class-custom-iframe-widget.php:1003
    553610msgid "Show"
    554611msgstr ""
    555612
    556 #: widget/class-custom-iframe-widget.php:537
    557 #: widget/class-custom-iframe-widget.php:578
    558 #: widget/class-custom-iframe-widget.php:595
    559 #: widget/class-custom-iframe-widget.php:612
    560 #: widget/class-custom-iframe-widget.php:629
    561 #: widget/class-custom-iframe-widget.php:646
    562 #: widget/class-custom-iframe-widget.php:663
    563 #: widget/class-custom-iframe-widget.php:680
    564 #: widget/class-custom-iframe-widget.php:697
     613#: widget/class-custom-iframe-widget.php:844
     614#: widget/class-custom-iframe-widget.php:885
     615#: widget/class-custom-iframe-widget.php:902
     616#: widget/class-custom-iframe-widget.php:919
     617#: widget/class-custom-iframe-widget.php:936
     618#: widget/class-custom-iframe-widget.php:953
     619#: widget/class-custom-iframe-widget.php:970
     620#: widget/class-custom-iframe-widget.php:987
     621#: widget/class-custom-iframe-widget.php:1004
    565622msgid "Hide"
    566623msgstr ""
    567624
    568 #: widget/class-custom-iframe-widget.php:550
     625#: widget/class-custom-iframe-widget.php:857
    569626msgid "Toolbar Position"
    570627msgstr ""
    571628
    572 #: widget/class-custom-iframe-widget.php:554
     629#: widget/class-custom-iframe-widget.php:861
    573630msgid "Top"
    574631msgstr ""
    575632
    576 #: widget/class-custom-iframe-widget.php:558
     633#: widget/class-custom-iframe-widget.php:865
    577634msgid "Bottom"
    578635msgstr ""
    579636
    580 #: widget/class-custom-iframe-widget.php:575
     637#: widget/class-custom-iframe-widget.php:882
    581638msgid "Print/Download"
    582639msgstr ""
    583640
    584 #: widget/class-custom-iframe-widget.php:592
     641#: widget/class-custom-iframe-widget.php:899
    585642msgid "Presentation Mode"
    586643msgstr ""
    587644
    588 #: widget/class-custom-iframe-widget.php:609
     645#: widget/class-custom-iframe-widget.php:916
    589646msgid "Copy Text"
    590647msgstr ""
    591648
    592 #: widget/class-custom-iframe-widget.php:626
     649#: widget/class-custom-iframe-widget.php:933
    593650msgid "Add Text"
    594651msgstr ""
    595652
    596 #: widget/class-custom-iframe-widget.php:643
     653#: widget/class-custom-iframe-widget.php:950
    597654msgid "Draw"
    598655msgstr ""
    599656
    600 #: widget/class-custom-iframe-widget.php:660
     657#: widget/class-custom-iframe-widget.php:967
    601658msgid "Add Image"
    602659msgstr ""
    603660
    604 #: widget/class-custom-iframe-widget.php:677
     661#: widget/class-custom-iframe-widget.php:984
    605662msgid "Rotation"
    606663msgstr ""
    607664
    608 #: widget/class-custom-iframe-widget.php:694
     665#: widget/class-custom-iframe-widget.php:1001
    609666msgid "Properties"
    610667msgstr ""
    611668
    612 #: widget/class-custom-iframe-widget.php:713
     669#: widget/class-custom-iframe-widget.php:1020
    613670msgid "Advance"
    614671msgstr ""
    615672
    616 #: widget/class-custom-iframe-widget.php:721
     673#: widget/class-custom-iframe-widget.php:1028
    617674msgid "Custom ID"
    618675msgstr ""
    619676
    620 #: widget/class-custom-iframe-widget.php:723
     677#: widget/class-custom-iframe-widget.php:1030
    621678msgid "my-custom-iframe"
    622679msgstr ""
    623680
    624 #: widget/class-custom-iframe-widget.php:724
     681#: widget/class-custom-iframe-widget.php:1031
    625682msgid "Enter an ID for custom CSS or JavaScript. Leave empty for an auto-generated ID."
    626683msgstr ""
    627684
    628 #: widget/class-custom-iframe-widget.php:738
     685#: widget/class-custom-iframe-widget.php:1043
     686msgid "Enable Sandbox"
     687msgstr ""
     688
     689#: widget/class-custom-iframe-widget.php:1066
     690msgid "Attributes"
     691msgstr ""
     692
     693#: widget/class-custom-iframe-widget.php:1091
    629694msgid "Style"
    630695msgstr ""
    631696
    632 #: widget/class-custom-iframe-widget.php:746
     697#: widget/class-custom-iframe-widget.php:1099
    633698msgid "Padding"
    634699msgstr ""
    635700
    636 #: widget/class-custom-iframe-widget.php:759
     701#: widget/class-custom-iframe-widget.php:1112
     702msgid "Container Width"
     703msgstr ""
     704
     705#: widget/class-custom-iframe-widget.php:1143
    637706msgid "Alignment"
    638707msgstr ""
    639708
    640 #: widget/class-custom-iframe-widget.php:763
     709#: widget/class-custom-iframe-widget.php:1147
    641710msgid "Left"
    642711msgstr ""
    643712
    644 #: widget/class-custom-iframe-widget.php:767
     713#: widget/class-custom-iframe-widget.php:1151
    645714msgid "Center"
    646715msgstr ""
    647716
    648 #: widget/class-custom-iframe-widget.php:771
     717#: widget/class-custom-iframe-widget.php:1155
    649718msgid "Right"
    650719msgstr ""
    651720
    652 #: widget/class-custom-iframe-widget.php:783
    653 msgid "Container Width"
    654 msgstr ""
    655 
    656 #: widget/class-custom-iframe-widget.php:816
    657 #: widget/class-custom-iframe-widget.php:824
     721#: widget/class-custom-iframe-widget.php:1169
     722#: widget/class-custom-iframe-widget.php:1177
    658723msgid "Background Style"
    659724msgstr ""
    660725
    661 #: widget/class-custom-iframe-widget.php:835
     726#: widget/class-custom-iframe-widget.php:1188
    662727msgid "Border Style"
    663728msgstr ""
    664729
    665 #: widget/class-custom-iframe-widget.php:850
     730#: widget/class-custom-iframe-widget.php:1203
    666731msgid "Border Radius"
    667732msgstr ""
    668733
    669 #: widget/class-custom-iframe-widget.php:863
     734#: widget/class-custom-iframe-widget.php:1216
    670735msgid "Box Shadow Style"
    671736msgstr ""
    672737
    673 #: widget/class-custom-iframe-widget.php:949
     738#: widget/class-custom-iframe-widget.php:1302
    674739msgid "Please enter a valid URL"
    675740msgstr ""
  • custom-iframe/trunk/readme.txt

    r3325274 r3342477  
    44Requires at least: 5.8
    55Tested up to: 6.8
    6 Stable tag: 1.0.12
     6Stable tag: 1.0.13
    77Requires PHP: 7.4
    88License: GPL-2.0+
     
    5050- 📱 **Device Frame Display** – Show content in device frames (coming soon)
    5151
    52 👉 **[Live Demo](https://coderzstudio.com/plugins/custom-iframe/demo/?utm_source=wordpress&utm_medium=readme&utm_campaign=custom_iframe&utm_id=wp_01)**
    53 👉 **[Get Premium Version](https://coderzstudio.com/plugins/custom-iframe/pricing/?utm_source=wordpress&utm_medium=readme&utm_campaign=custom_iframe&utm_id=wp_01)**
     52👉 **[Live Demo](https://customiframe.com/demo/?utm_source=elementor&utm_medium=widget_settings&utm_campaign=demo)**
     53👉 **[Get Premium Version](https://customiframe.com/early-bird/?utm_source=plugin&utm_medium=wpdashboard&utm_campaign=upgrade_cta)**
    5454
    5555**🔴 Watch the Video Tutorial ( <a href="https://www.youtube.com/watch?v=EB6MgWB6zLA" target="_blank">Link</a> )**
     
    7878== Screenshots ==
    7979
    80 1. Embed Any Type Of content without Limit.
     801. **Embed** Any Type Of content without Limit.
    81812. **Embed Videos** – Video Player ( Youtube, Vimeo, etc.).
    82823. **Embed Social Media Posts** – X, Linkdin, Instagram, etc.
     
    118118== Changelog ==
    119119
    120 = 1.0.12 (July 10, 2025) =
     120= 1.0.13 (August 3, 2025) =
     121* Improvements : Improved Feedback form.
     122* Improvements : Improved Dashboard design.
     123* Improvements : Controller UI Improved.
     124* Fixed : Auto height not working.
     125* Fixed : Border radius not working with box shadows.
     126* Compatibility: Elementor Version Free & Pro 3.31.
     127
     128= 1.0.12 (June 10, 2025) =
    121129* Compatibility: Added support for **YouTube Shorts** embed.
    122130* Compatibility: Added support for **Wistia Videos** embed.
     
    184192Need help? We're here for you!
    185193
    186 💬 **Website:** [CoderzStudio.com](https://coderzstudio.com/?utm_source=wordpress&utm_medium=readme&utm_campaign=custom_iframe&utm_id=wp_01)
    187 📖 **Docs:** [View Documentation](https://coderzstudio.com/plugin-doc/custom-iframe/?utm_source=wordpress&utm_medium=readme&utm_campaign=custom_iframe&utm_id=wp_01)
     194💬 **Website:** [CoderzStudio.com](https://customiframe.com/?utm_source=wordpress&utm_medium=readme&utm_campaign=custom_iframe&utm_id=wp_01)
     195📖 **Docs:** [View Documentation](https://customiframe.com/demo/?utm_source=elementor&utm_medium=widget_settings&utm_campaign=demo)
    188196🛠️ **Support:** [Submit a Request](https://wordpress.org/plugins/custom-iframe/#reviews)
    189197
  • custom-iframe/trunk/widget/class-custom-iframe-widget.php

    r3311922 r3342477  
    55use custif\includes\embed_handlers\Embed_Converter;
    66use custif\includes\embed_handlers\PDF_Handler;
     7use custif\includes\Notice_Manager;
    78use Elementor\Controls_Manager;
    89use Elementor\Group_Control_Background;
     
    2728
    2829    /**
     30     * Notices manager instance.
     31     *
     32     * @var Notice_Manager
     33     */
     34    private $notices_manager;
     35
     36    /**
    2937     * Embed converter instance.
    3038     *
     
    5361        parent::__construct( $data, $args );
    5462
    55         // Initialize the embed converter and PDF handler.
     63        // Initialize the embed converter , PDF handler and Notice class.
    5664        $this->embed_converter = new Embed_Converter();
    5765        $this->pdf_handler     = new PDF_Handler();
     66        $this->notices_manager = new Notice_Manager();
     67    }
     68
     69    /**
     70     * Get pro plugin notice HTML.
     71     *
     72     * @return string Pro plugin notice HTML.
     73     * @since 1.0.13
     74     */
     75    protected function pro_plugin_notice() {
     76        return $this->notices_manager->pro_plugin_notice();
    5877    }
    5978
     
    144163                    'default' => __( 'Default', 'custom-iframe' ),
    145164                    'Pdf'     => __( 'Pdf', 'custom-iframe' ),
    146                 ),
    147 
     165                    'X'       => __( 'X ( Pro )', 'custom-iframe' ),
     166                    'Youtube' => __( 'YouTube ( Pro )', 'custom-iframe' ),
     167                    'Vimeo'   => __( 'Vimeo ( Pro )', 'custom-iframe' ),
     168                ),
    148169            )
    149170        );
     
    161182                'show_external' => false,
    162183                'condition'     => array(
    163                     'source' => 'default',
     184                    'source!' => 'Pdf',
    164185                ),
    165186            )
     
    268289                    'size' => 500,
    269290                ),
     291                'description' => __( 'height is not supported when using the X Embed Post.', 'custom-iframe' ),
    270292                'selectors'  => array(
    271293                    '{{WRAPPER}} iframe' => 'height: {{SIZE}}{{UNIT}};',
     
    287309                'return_value' => 'yes',
    288310                'default'      => 'no',
     311                'separator'  => 'before',
     312                'description' => __( 'Auto height only works when cross domain with "allow origin all in header".', 'custom-iframe' ),
    289313            )
    290314        );
     
    297321                'default'   => 'yes',
    298322                'condition' => array(
    299                     'source' => 'default',
    300                 ),
     323                    'source!' => 'Pdf',
     324                ),
     325                'separator'  => 'before',
    301326            )
    302327        );
     
    312337                'description' => __( 'Set 0 to disable auto-refresh', 'custom-iframe' ),
    313338                'condition'   => array(
    314                     'source' => 'default',
     339                    'source!' => 'Pdf',
    315340                ),
    316341            )
     
    337362                'default'      => 'no',
    338363                'separator'    => 'before',
    339                 'condition'    => array(
    340                     'source' => 'default',
     364                'conditions' => array(
     365                    'relation' => 'or',
     366                    'terms' => array(
     367                        array(
     368                            'name' => 'pdf_type',
     369                            'operator' => '!==',
     370                            'value' => 'file',
     371                        ),
     372                        array(
     373                            'name' => 'source',
     374                            'operator' => '!==',
     375                            'value' => 'Pdf',
     376                        ),
     377                    ),
    341378                ),
    342379            )
     
    368405                ),
    369406                'separator' => 'before',
     407            )
     408        );
     409
     410        $this->end_controls_section();
     411
     412        $this->start_controls_section(
     413            'x_basic_options',
     414            array(
     415                'label'     => __( 'X Basic Options', 'custom-iframe' ),
     416                'tab'       => Controls_Manager::TAB_CONTENT,
     417                'condition' => array(
     418                    'source' => 'X',
     419                ),
     420            )
     421        );
     422
     423        $this->add_control(
     424            'x_basic_options_pro',
     425            array(
     426                'label'       => '',
     427                'type'        => Controls_Manager::RAW_HTML,
     428                'default'     => '',
     429                'description' => '',
     430                'raw'         => $this->pro_plugin_notice(),
     431                'condition' => array(
     432                    'source' => 'X',
     433                ),
     434            )
     435        );
     436
     437        $this->end_controls_section();
     438
     439        $this->start_controls_section(
     440            'x_advanced_options',
     441            array(
     442                'label'     => __( 'X Basic Options', 'custom-iframe' ),
     443                'tab'       => Controls_Manager::TAB_CONTENT,
     444                'condition' => array(
     445                    'source' => 'X',
     446                ),
     447            )
     448        );
     449
     450        $this->add_control(
     451            'x_advance_options_pro',
     452            array(
     453                'label'       => '',
     454                'type'        => Controls_Manager::RAW_HTML,
     455                'default'     => '',
     456                'description' => '',
     457                'raw'         => $this->pro_plugin_notice(),
     458                'condition' => array(
     459                    'source' => 'X',
     460                ),
     461            )
     462        );
     463
     464        $this->end_controls_section();
     465
     466        $this->start_controls_section(
     467            'basic_options',
     468            array(
     469                'label'     => __( 'Basic Options', 'custom-iframe' ),
     470                'tab'       => Controls_Manager::TAB_CONTENT,
     471                'condition' => array(
     472                    'source' => 'Youtube',
     473                ),
     474            )
     475        );
     476
     477        $this->add_control(
     478            'youtube_basic_options_pro',
     479            array(
     480                'label'       => '',
     481                'type'        => Controls_Manager::RAW_HTML,
     482                'default'     => '',
     483                'description' => '',
     484                'raw'         => $this->pro_plugin_notice(),
     485                'condition' => array(
     486                    'source' => 'Youtube',
     487                ),
     488            )
     489        );
     490
     491        $this->end_controls_section();
     492
     493        $this->start_controls_section(
     494            'youtube_playback_section',
     495            array(
     496                'label'     => __( 'YouTube Playback', 'custom-iframe' ),
     497                'tab'       => Controls_Manager::TAB_CONTENT,
     498                'condition' => array(
     499                    'source' => 'Youtube',
     500                ),
     501            )
     502        );
     503
     504        $this->add_control(
     505            'youtube_playback_section_pro',
     506            array(
     507                'label'       => '',
     508                'type'        => Controls_Manager::RAW_HTML,
     509                'default'     => '',
     510                'description' => '',
     511                'raw'         => $this->pro_plugin_notice(),
     512                'condition' => array(
     513                    'source' => 'Youtube',
     514                ),
     515            )
     516        );
     517
     518        $this->end_controls_section();
     519
     520        $this->start_controls_section(
     521            'youtube_appearance_section',
     522            array(
     523                'label'     => __( 'YouTube Appearance', 'custom-iframe' ),
     524                'tab'       => Controls_Manager::TAB_CONTENT,
     525                'condition' => array(
     526                    'source' => 'Youtube',
     527                ),
     528            )
     529        );
     530
     531        $this->add_control(
     532            'youtube_appearance_section_pro',
     533            array(
     534                'label'       => '',
     535                'type'        => Controls_Manager::RAW_HTML,
     536                'default'     => '',
     537                'description' => '',
     538                'raw'         => $this->pro_plugin_notice(),
     539                'condition' => array(
     540                    'source' => 'Youtube',
     541                ),
     542            )
     543        );
     544
     545        $this->end_controls_section();
     546
     547        $this->start_controls_section(
     548            'youtube_advanced_section',
     549            array(
     550                'label'     => __( 'YouTube Advanced', 'custom-iframe' ),
     551                'tab'       => Controls_Manager::TAB_CONTENT,
     552                'condition' => array(
     553                    'source' => 'Youtube',
     554                ),
     555            )
     556        );
     557
     558        $this->add_control(
     559            'youtube_advanced_section_pro',
     560            array(
     561                'label'       => '',
     562                'type'        => Controls_Manager::RAW_HTML,
     563                'default'     => '',
     564                'description' => '',
     565                'raw'         => $this->pro_plugin_notice(),
     566                'condition' => array(
     567                    'source' => 'Youtube',
     568                ),
     569            )
     570        );
     571
     572        $this->end_controls_section();
     573
     574        $this->start_controls_section(
     575            'youtube_captions_section',
     576            array(
     577                'label'     => __( 'YouTube Captions', 'custom-iframe' ),
     578                'tab'       => Controls_Manager::TAB_CONTENT,
     579                'condition' => array(
     580                    'source' => 'Youtube',
     581                ),
     582            )
     583        );
     584
     585        $this->add_control(
     586            'youtube_captions_section_pro',
     587            array(
     588                'label'       => '',
     589                'type'        => Controls_Manager::RAW_HTML,
     590                'default'     => '',
     591                'description' => '',
     592                'raw'         => $this->pro_plugin_notice(),
     593                'condition' => array(
     594                    'source' => 'Youtube',
     595                ),
     596            )
     597        );
     598
     599        $this->end_controls_section();
     600
     601        $this->start_controls_section(
     602            'vimeo_basic_options',
     603            array(
     604                'label'     => __( 'Vimeo Basic Options', 'custom-iframe' ),
     605                'tab'       => Controls_Manager::TAB_CONTENT,
     606                'condition' => array(
     607                    'source' => 'Vimeo',
     608                ),
     609            )
     610        );
     611
     612        $this->add_control(
     613            'vimeo_basic_options_pro',
     614            array(
     615                'label'       => '',
     616                'type'        => Controls_Manager::RAW_HTML,
     617                'default'     => '',
     618                'description' => '',
     619                'raw'         => $this->pro_plugin_notice(),
     620                'condition' => array(
     621                    'source' => 'Vimeo',
     622                ),
     623            )
     624        );
     625
     626        $this->end_controls_section();
     627
     628        $this->start_controls_section(
     629            'vimeo_playback_options',
     630            array(
     631                'label'     => __( 'Vimeo Playback', 'custom-iframe' ),
     632                'tab'       => Controls_Manager::TAB_CONTENT,
     633                'condition' => array(
     634                    'source' => 'Vimeo',
     635                ),
     636            )
     637        );
     638
     639        $this->add_control(
     640            'vimeo_playback_options_pro',
     641            array(
     642                'label'       => '',
     643                'type'        => Controls_Manager::RAW_HTML,
     644                'default'     => '',
     645                'description' => '',
     646                'raw'         => $this->pro_plugin_notice(),
     647                'condition' => array(
     648                    'source' => 'Vimeo',
     649                ),
     650            )
     651        );
     652
     653        $this->end_controls_section();
     654
     655        $this->start_controls_section(
     656            'vimeo_appearance_options',
     657            array(
     658                'label'     => __( 'Vimeo Appearance', 'custom-iframe' ),
     659                'tab'       => Controls_Manager::TAB_CONTENT,
     660                'condition' => array(
     661                    'source' => 'Vimeo',
     662                ),
     663            )
     664        );
     665
     666        $this->add_control(
     667            'vimeo_appearance_options_pro',
     668            array(
     669                'label'       => '',
     670                'type'        => Controls_Manager::RAW_HTML,
     671                'default'     => '',
     672                'description' => '',
     673                'raw'         => $this->pro_plugin_notice(),
     674                'condition' => array(
     675                    'source' => 'Vimeo',
     676                ),
    370677            )
    371678        );
     
    7261033                    'custom-iframe'
    7271034                ),
     1035                'separator'   => 'after',
    7281036                'label_block' => true,
    729                 'separator'   => 'before',
     1037            )
     1038        );
     1039
     1040        $this->add_control(
     1041            'sandbox',
     1042            array(
     1043                'label'   => __( 'Enable Sandbox', 'custom-iframe' ),
     1044                'type'    => Controls_Manager::SWITCHER,
     1045                'default' => 'no',
     1046            )
     1047        );
     1048
     1049        $this->add_control(
     1050            'sandbox_pro',
     1051            array(
     1052                'label'       => '',
     1053                'type'        => Controls_Manager::RAW_HTML,
     1054                'default'     => '',
     1055                'description' => '',
     1056                'raw'         => $this->pro_plugin_notice(),
     1057                'condition' => array(
     1058                    'sandbox' => 'yes',
     1059                ),
     1060            )
     1061        );
     1062
     1063        $this->add_control(
     1064            'custif_custom_iframe_attributes',
     1065            array(
     1066                'label'   => __( 'Attributes', 'custom-iframe' ),
     1067                'type'    => Controls_Manager::SWITCHER,
     1068                'default' => 'no',
     1069            )
     1070        );
     1071
     1072        $this->add_control(
     1073            'custif_custom_iframe_attributes_pro',
     1074            array(
     1075                'label'       => '',
     1076                'type'        => Controls_Manager::RAW_HTML,
     1077                'default'     => '',
     1078                'description' => '',
     1079                'raw'         => $this->pro_plugin_notice(),
     1080                'condition' => array(
     1081                    'custif_custom_iframe_attributes' => 'yes',
     1082                ),
    7301083            )
    7311084        );
     
    7511104                ),
    7521105                'separator'  => 'before',
    753             )
    754         );
    755 
    756         $this->add_control(
    757             'align',
    758             array(
    759                 'label'        => __( 'Alignment', 'custom-iframe' ),
    760                 'type'         => Controls_Manager::CHOOSE,
    761                 'options'      => array(
    762                     'left'   => array(
    763                         'title' => __( 'Left', 'custom-iframe' ),
    764                         'icon'  => 'eicon-text-align-left',
    765                     ),
    766                     'center' => array(
    767                         'title' => __( 'Center', 'custom-iframe' ),
    768                         'icon'  => 'eicon-text-align-center',
    769                     ),
    770                     'right'  => array(
    771                         'title' => __( 'Right', 'custom-iframe' ),
    772                         'icon'  => 'eicon-text-align-right',
    773                     ),
    774                 ),
    775                 'prefix_class' => 'custif-iframe-align-',
    776                 'separator'    => 'before',
    7771106            )
    7781107        );
     
    8091138        );
    8101139
     1140        $this->add_control(
     1141            'align',
     1142            array(
     1143                'label'        => __( 'Alignment', 'custom-iframe' ),
     1144                'type'         => Controls_Manager::CHOOSE,
     1145                'options'      => array(
     1146                    'left'   => array(
     1147                        'title' => __( 'Left', 'custom-iframe' ),
     1148                        'icon'  => 'eicon-text-align-left',
     1149                    ),
     1150                    'center' => array(
     1151                        'title' => __( 'Center', 'custom-iframe' ),
     1152                        'icon'  => 'eicon-text-align-center',
     1153                    ),
     1154                    'right'  => array(
     1155                        'title' => __( 'Right', 'custom-iframe' ),
     1156                        'icon'  => 'eicon-text-align-right',
     1157                    ),
     1158                ),
     1159                'prefix_class' => 'custif-iframe-align-',
     1160                'separator'    => 'before',
     1161            )
     1162        );
     1163
    8111164        $this->end_controls_section();
    8121165
     
    8411194            array(
    8421195                'name'     => 'iframe_border',
    843                 'selector' => '{{WRAPPER}} iframe',
     1196                'selector' => '{{WRAPPER}} iframe,{{WRAPPER}} .custif-iframe-wrapper',
    8441197            )
    8451198        );
     
    8691222            array(
    8701223                'name'     => 'iframe_box_shadow',
    871                 'selector' => '{{WRAPPER}} iframe',
     1224                'selector' => '{{WRAPPER}} .custif-iframe-wrapper',
    8721225            )
    8731226        );
     
    9291282        ?>
    9301283        <div class="custif-iframe-wrapper" id="<?php echo esc_attr( $iframe_id ); ?>">
    931             <?php if ( ( ! empty( $source ) && 'default' === $source ) || ( 'url' === $pdf_type && ! empty( $settings['pdf_file_link']['url'] ) ) ) : ?>
     1284            <?php if ( ( ! empty( $source ) && 'Pdf' !== $source ) || ( 'url' === $pdf_type && ! empty( $settings['pdf_file_link']['url'] ) ) ) : ?>
    9321285                <?php if ( ! empty( $url ) ) : ?>
    9331286                    <?php
  • custom-iframe/trunk/widget/class-need-help-controller.php

    r3262072 r3342477  
    2020    array(
    2121        'type' => Controls_Manager::RAW_HTML,
    22         'raw' => wp_kses_post( "<a class='' href='https://wordpress.org/support/plugin/custom-iframe/?utm_source=elementor&utm_medium=needhelp&utm_campaign=custom_iframe&utm_id=wp_02' target='_blank' rel='noopener noreferrer'> Raise a Ticket </a>" ),
     22        'raw' => wp_kses_post( "<a class='' href='https://wordpress.org/support/plugin/custom-iframe/' target='_blank' rel='noopener noreferrer'> Raise a Ticket </a>" ),
    2323    )
    2424);
     
    2727    array(
    2828        'type' => Controls_Manager::RAW_HTML,
    29         'raw' => wp_kses_post( "<a class='' href='https://coderzstudio.com/plugin-doc/custom-iframe/?utm_source=elementor&utm_medium=needhelp&utm_campaign=custom_iframe&utm_id=wp_02' target='_blank' rel='noopener noreferrer'> Read Documentation </a>" ),
     29        'raw' => wp_kses_post( "<a class='' href='https://customiframe.com/docs/?utm_source=elementor&utm_medium=widget_settings&utm_campaign=read_docs' target='_blank' rel='noopener noreferrer'> Read Documentation </a>" ),
    3030    )
    3131);
     
    3434    array(
    3535        'type' => Controls_Manager::RAW_HTML,
    36         'raw' => wp_kses_post( "<a class='' href='https://coderzstudio.com/contact/?utm_source=elementor&utm_medium=needhelp&utm_campaign=custom_iframe&utm_id=wp_02' target='_blank' rel='noopener noreferrer'> Suggest Feature </a>" ),
     36        'raw' => wp_kses_post( "<a class='' href='https://customiframe.com/contact/?utm_source=elementor&utm_medium=widget_settings&utm_campaign=suggest_feature' target='_blank' rel='noopener noreferrer'> Suggest Feature </a>" ),
    3737    )
    3838);
     
    4141    array(
    4242        'type' => Controls_Manager::RAW_HTML,
    43         'raw' => wp_kses_post( "<a class='' href='https://coderzstudio.com/contact/?utm_source=elementor&utm_medium=needhelp&utm_campaign=custom_iframe&utm_id=wp_02' target='_blank' rel='noopener noreferrer'> Didn't work like you wanted? Report Issue </a>" ),
     43        'raw' => wp_kses_post( "<a class='' href='https://customiframe.com/support/?utm_source=elementor&utm_medium=widget_settings&utm_campaign=support_links&utm_content=report_issue' target='_blank' rel='noopener noreferrer'> Didn't work like you wanted? Report Issue </a>" ),
    4444    )
    4545);
Note: See TracChangeset for help on using the changeset viewer.