HEX
Server: Apache/2.4.65 (Debian)
System: Linux 88f31f35b0b8 6.1.0-38-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.147-1 (2025-08-02) x86_64
User: www-data (33)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: /var/www/html/wp-content/plugins/wp-rss-aggregator/v4/includes/v5-switch.php
<?php

if (!defined('ABSPATH')) {
    exit;
}

if (!WPRA_V5_USE_V4) {
    return;
}

add_action(
    'wprss_add_settings_fields_sections', function ($tab) {
        if ($tab === 'switch_to_v5') {
            settings_fields('wprss_enable_v5_group');
            do_settings_sections('wprss_enable_v5_group');
        }
    }
);

add_filter(
    'wprss_options_tabs_final', function ($tabs) {
        $tabs[] = [
        'label' => __('Switch to v5', 'wprss'),
        'slug' => 'switch_to_v5',
        ];
        return $tabs;
    }
);

add_action(
    'admin_init', function () {
        register_setting(
            'wprss_enable_v5_group', 'wprss_enable_v5', [
            'default' => '0',
            ]
        );

        add_settings_section(
            'wprss_enable_v5_section',
            __('', 'wprss'),
            function () {
                ?>
            <div class="wprss-v5-upgrade-wrapper">

                <div class="wprss-section" style="text-align: center;">
                    <img
                        src="<?php echo esc_attr(WPRSS_IMG . 'wpra-icon-transparent-new.png') ?>"
                        alt="WP RSS Aggregator logo"
                        style="width: 50px; height: 50px;"
                    />
                    <h2 class="wprss-v5-title"><?php esc_html_e('Aggregator v5 is here!', 'wprss'); ?></h2>
                    <p class="wprss-v5-subtitle"><?php esc_html_e('Get the latest version with faster performance and a sleek new look', 'wprss'); ?></p>

                    <div class="wprss-v5-hero-video-box">
                        <div class="wprss-v5-hero-video-wrapper">
                            <iframe 
                                width="100%" 
                                height="200" 
                                src="https://www.youtube.com/embed/bfiR3kx3OMs" 
                                title="<?php esc_attr_e( 'Welcome to Aggregator v5', 'wprss' ); ?>" 
                                frameborder="0" 
                                allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" 
                                allowfullscreen
                            ></iframe>
                        </div>
                        <p class="wprss-v5-video-caption"><?php esc_html_e( 'Welcome to Aggregator v5', 'wprss' ); ?><br />
                        <span><?php esc_html_e( 'Upgrade safely from version 4', 'wprss' ); ?></span></p>
                    </div>
                    
                    <div class="wprss-v5-videos">
                        <div class="wprss-v5-video-box">
                            <div class="wprss-v5-video-wrapper">
                                <iframe 
                                    width="100%" 
                                    height="200" 
                                    src="https://www.youtube.com/embed/DeUTFPADb1g" 
                                    title="<?php esc_attr_e( 'What’s New in v5', 'wprss' ); ?>" 
                                    frameborder="0" 
                                    allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" 
                                    allowfullscreen
                                ></iframe>
                            </div>
                            <p class="wprss-v5-video-caption"><?php esc_html_e( 'What’s New in v5', 'wprss' ); ?><br />
                                <span><?php esc_html_e( 'Discover the latest improvements', 'wprss' ); ?></span></p>
                        </div>

                        <div class="wprss-v5-video-box">
                            <div class="wprss-v5-video-wrapper">
                                <iframe 
                                    width="100%" 
                                    height="200" 
                                    src="https://www.youtube.com/embed/BrEKqGD_Lps" 
                                    title="<?php esc_attr_e( 'Migration Guide', 'wprss' ); ?>" 
                                    frameborder="0" 
                                    allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" 
                                    allowfullscreen
                                ></iframe>
                            </div>
                            <p class="wprss-v5-video-caption"><?php esc_html_e( 'Migration Guide', 'wprss' ); ?><br />
                                <span><?php esc_html_e( 'Step-by-step walkthrough from v4 to v5', 'wprss' ); ?></span></p>
                        </div>
                    </div>

                </div>

                <div class="wprss-section wprss-feature-list">
                    <h3>
                        <?php esc_html_e("We're excited to introduce Aggregator v5, but before you switch, here's what you need to know:", 'wprss'); ?>
                    </h3>
                    <ul class="wprss-v5-info-list">
                        <li>
                            <img class="feature-icon" src="<?php echo WPRSS_IMG . 'calendar.svg'; ?>" alt="calendar icon" />

                            <div class="feature-header">
                                <h3>
                                    <?php esc_html_e('Version 4 & Legacy Add-Ons Retiring', 'wprss'); ?>
                                </h3>
                                <p>
                                    <?php
                                    echo wp_kses(
                                        __(
                                            'Aggregator v4 and all legacy premium add-ons will officially reach end-of-life on <strong>December 31, 2025.</strong><br>After this date, they’ll no longer receive updates, support, or be available for download.',
                                            'wprss'
                                        ),
                                        [ 'strong' => [], 'br' => [] ]
                                    );
                                    ?>
                                </p>
                            </div>    
                        </li>
                        <li>
                            <img class="feature-icon" src="<?php echo WPRSS_IMG . 'star.svg'; ?>" alt="star icon" />

                            <div class="feature-header">
                                <h3>
                                    <?php esc_html_e('Using a Premium Plan?', 'wprss'); ?>
                                </h3>
                                <p>
                                <?php 
                                    printf(
                                        wp_kses(
                                            __(
                                                'To unlock the premium features in v5 and receive future updates, you’ll need an <strong><a href="%1$s" target="_blank" rel="noopener noreferrer">active plan license.</a></strong><br> If your plan has expired, please <a target="_blank" href="%2$s">renew or upgrade here</a> before migrating.',
                                                'wprss'
                                            ),
                                            [ 'strong' => [], 'br' => [], 'a' => [
                                                'href' => [],
                                                'target' => [],
                                                'rel' => [],
                                            ], ]
                                        ),
                                        esc_url('https://www.wprssaggregator.com/help/locating-your-license-keys/'),
                                        esc_url('https://www.wprssaggregator.com/account/')
                                    );
                                    ?>
                                </p>
                            </div>

                        </li>

                        <li>
                            <img class="feature-icon" src="<?php echo WPRSS_IMG . 'tool.svg'; ?>" alt="tool icon" />

                            <div class="feature-header">
                                <h3>
                                    <?php esc_html_e('Have Individual Add-Ons?', 'wprss'); ?>
                                </h3>
                                <p>
                                <?php 
                                    printf(
                                        wp_kses(
                                            __(
                                                'Previously bought single add-ons without a plan? Those are now considered <strong>legacy licenses.</strong><br> You’ll need to  <a target="_blank" href="%1$s">upgrade to any plan</a> (Basic, Plus, Pro, or Elite) to keep enjoying premium features, updates, and support.',
                                                'wprss'
                                            ),
                                            [ 'strong' => [], 'br' => [], 'a' => [
                                                'href' => [],
                                                'target' => [],
                                                'rel' => [],
                                            ], ]
                                        ),
                                        esc_url('https://www.wprssaggregator.com/account/upgrades/'),
                                    );
                                    ?>
                                </p>
                            </div>
                        </li>
                        <li>
                            <img class="feature-icon" src="<?php echo WPRSS_IMG . 'key.svg'; ?>" alt="key icon" />

                            <div class="feature-header">
                                <h3>
                                    <?php esc_html_e('Free User?', 'wprss'); ?>
                                </h3>
                                <p>
                                <?php 
                                    printf(
                                        wp_kses(
                                            __(
                                                'You’re welcome to switch to v5 at no cost, but please note that <a target="_blank" href="%1$s"><strong>premium features require a plan license.</strong></a><br> You’ll need to  <a target="_blank" href="%2$s">upgrade to any plan</a> (Basic, Plus, Pro, or Elite) to unlock premium features and support.',
                                                'wprss'
                                            ),
                                            [ 'strong' => [], 'br' => [], 'a' => [
                                                'href' => [],
                                                'target' => [],
                                                'rel' => [],
                                            ], ]
                                        ),
                                        esc_url('https://www.wprssaggregator.com/pricing/'),
                                        esc_url('https://www.wprssaggregator.com/upgrade/'),
                                    );
                                ?>
                                </p>
                            </div>
                        </li>
                    </ul>
                </div>

                <div class="wprss-section">
                    <h3><?php esc_html_e('Migration Tips', 'wprss'); ?></h3>
                    <ul style="list-style: decimal; padding-left: 20px; margin:25px 0;">
                    <li>
                        <?php
                        echo wp_kses(
                            __(
                                '<strong>Test first</strong> on a staging site.',
                                'wprss'
                            ),
                            [ 'strong' => [] ]
                        );
                        ?>
                    </li>
                    <li>
                        <?php
                        echo wp_kses(
                            __(
                                'You can <strong>roll back to v4</strong> on the <strong>Settings</strong> page in v5.',
                                'wprss'
                            ),
                            [ 'strong' => [] ]
                        );
                        ?>
                    </li>
                    <li>
                    <?php esc_html_e('Before migrating, we recommend backing up your site:', 'wprss'); ?>
                    </li>
                    <ul style="list-style: disc; padding-left: 20px;">
                        <li>
                        <?php
                        echo wp_kses(
                            __(
                                'Make sure you have your <strong>main license key</strong> (not add-on keys).',
                                'wprss'
                            ),
                            [ 'strong' => [] ]
                        );
                        ?>
                            </li>
                        <li>
                        <?php
                        echo wp_kses(
                            __(
                                '<strong>Ensure any add-ons you own are installed and activated.</strong>',
                                'wprss'
                            ),
                            [ 'strong' => [] ]
                        );
                        ?>
                    </ul>
                </ul>
                <div class="wprss-tip-note" style="display: flex; align-items: flex-start; gap: 10px; background-color:#FEF6EB; padding: 32px 40px 32px 24px;">
                        <img class="feature-icon" src="<?php echo WPRSS_IMG . 'alert.svg'; ?>" alt="alert icon" />
                        <p style="margin: 0;">
                        <?php 
                            printf(
                                wp_kses(
                                    __(
                                        '<strong>Note:</strong> If your site has <strong>over 10,000 imported items</strong> or you encounter issues during migration, we recommend using the <strong>WP-CLI Migration Method</strong> for a more controlled and reliable process. <a target="_blank" href="%1$s">View the guide.</a>',
                                        'wprss'
                                    ),
                                    [ 'strong' => [], 'br' => [], 'a' => [
                                        'href' => [],
                                        'target' => [],
                                        'rel' => [],
                                    ], ]
                                ),
                                esc_url('https://www.wprssaggregator.com/help/migration-wp-cli/'),
                            );
                            ?>
                        </p>
                    </div>
                </div>


                <div class="wprss-section" style="text-align: center;">
                    <h3><?php esc_html_e('Need a Hand?', 'wprss'); ?></h3>

                    <p class="wprss-v5-help">
                                <?php
                                printf(
                                    wp_kses(
                                        __(
                                            'Check out the <a target="_blank" href="%1$s">migration guide</a> or <a target="_blank" href="%2$s">contact our support team</a>, we’re always happy to help!',
                                            'wprss'
                                        ),
                                        [ 'strong' => [], 'br' => [], 'a' => [
                                            'href' => [],
                                            'target' => [],
                                            'rel' => [],
                                        ], ]
                                    ),
                                    esc_url('https://www.wprssaggregator.com/help/migration/'),
                                    esc_url('https://www.wprssaggregator.com/contact/'),
                                );
                                ?>
                    </p>
                </div>

                <div class="wprss-v5-footer">
                    <h3><?php esc_html_e('Ready to Move Forward?', 'wprss'); ?></h3>
                    <p><?php esc_html_e('Click below to start your migration to v5', 'wprss'); ?></p>
                    <input type="hidden" name="wprss_enable_v5" value="1" />
                    <button type="submit" class="button" style="padding: 6px 12px;">
                        <?php esc_html_e('Switch to v5', 'wprss'); ?>
                    </button>
                    <script type="text/javascript">
                        document.addEventListener('DOMContentLoaded', function () {
                            document.querySelector('p.submit')?.remove();
                        });
                    </script>
                </div>
            </div>
            <style>
            .wprss-section {
                background-color: #fff;
                padding: 30px;
                margin-top: 30px;
                border-radius: 17px;
            }
            .wprss-section h3{
                font-size: 14px !important;
                margin-top: 0px !important;
            }

            .wprss-feature-list li{
                list-style: none;
                display: flex;
                align-items: flex-start;
                gap: 12px;
                margin-bottom: 8px;
            }

            .wprss-v5-upgrade-wrapper {
                max-width: 900px;
            }

            .wprss-v5-title {
                font-size: 24px;
                margin-bottom: 5px;
            }

            .wprss-v5-subtitle {
                font-size: 14px;
                color: #666;
                margin-bottom: 20px;
            }

            .wprss-v5-videos {
                display: flex;
                gap: 24px;
                margin-bottom: 30px;
                flex-wrap: wrap;
            }
            .wprss-v5-hero-video-box {
                border: 1px solid #757575;
                margin: 40px auto;
                width: 352px;
                background-color: #FAFAFA;
                padding: 20px;
                border-radius: 10px;
            }

            .wprss-v5-hero-video-wrapper {
                position: relative;
                padding-bottom: 56.25%; /* 16:9 */
                height: 0;
                overflow: hidden;
                border-radius: 6px;
                margin-bottom: 10px;
                background-color: #000;
            }

            .wprss-v5-hero-video-wrapper iframe {
                position: absolute;
                top: 0;
                left: 0;
                width: 100%;
                height: 100%;
                border: none;
            }


            .wprss-v5-video-box {
                flex: 1 0 0;
                min-width: 300px;
                background-color: #FAFAFA;
                padding: 20px;
                border-radius: 10px;
            }

            .wprss-v5-video-wrapper {
                position: relative;
                padding-bottom: 56.25%; /* 16:9 aspect ratio */
                height: 0;
                overflow: hidden;
                border-radius: 6px;
                margin-bottom: 10px;
                background-color: #000;
            }

            .wprss-v5-video-wrapper iframe {
                position: absolute;
                top: 0;
                left: 0;
                width: 100%;
                height: 100%;
                border: none;
            }

            .wprss-v5-video-caption {
                font-weight: bold;
                font-size: 14px;
                text-align: center;
            }

            .wprss-v5-video-caption span {
                display: block;
                font-weight: normal;
                font-size: 13px;
                color: #666;
            }
            .wprss-v5-info-list {
                list-style: disc;
                margin-top: 25px;

            }
            .wprss-v5-info-list li {
                margin-bottom: 20px;
            }

            .wprss-v5-migration-tips {
                list-style: decimal;
                padding-left: 20px;
                margin-bottom: 20px;
            }

            .wprss-v5-migration-tips ul {
                list-style: disc;
                padding-left: 20px;
                margin-top: 5px;
            }

            .wprss-v5-note {
                background: #fef7e5;
                border-left: 4px solid #ffc107;
                padding: 10px 15px;
                margin-bottom: 30px;
            }

            .wprss-v5-help {
                font-size: 14px;
                margin-top: 20px !important;
            }

            .wprss-v5-footer {
                background: #0D1759;
                color: #fff;
                padding: 30px;
                border-radius: 6px;
                text-align: center;
                margin-top: 30px;
            }

            .wprss-v5-footer h3 {
                color: #fff;
                font-size: 20px !important;
                font-weight: 400;
                margin-top: 5px !important;
            }

            .wprss-v5-footer p {
                color: #cdd4f2;
                margin-bottom: 20px;
            }

            </style>
                <?php
            },
            'wprss_enable_v5_group'
        );
    }
);


add_action('update_option_wprss_enable_v5', 'wprss_redirect_to_v5', 10, 2);
add_action('add_option_wprss_enable_v5', 'wprss_redirect_to_v5', 10, 2);
function wprss_redirect_to_v5($prevValue, $newValue)
{
    if ($newValue === '1') {
        set_transient('wprss_redirect_to_v5', '1', 60);
        wp_redirect(admin_url());
        exit;
    }
}