Plugin Directory

Changeset 3423970


Ignore:
Timestamp:
12/19/2025 09:05:04 PM (2 months ago)
Author:
themeisle
Message:

Update to version 3.2.8 from GitHub

Location:
wpcf7-redirect
Files:
16 edited
1 copied

Legend:

Unmodified
Added
Removed
  • wpcf7-redirect/tags/3.2.8/classes/class-wpcf7r-save-files.php

    r3340847 r3423970  
    179179     */
    180180    public function move_file_to_upload( $file_path ) {
     181
     182        $validate = wp_check_filetype( $file_path );
     183        if ( ! $validate['type'] || preg_match( '#^[a-zA-Z0-9+.-]+://#', $file_path ) ) {
     184            die( esc_html__( 'File type is not allowed', 'wpcf7-redirect' ) );
     185        }
     186
    181187        global $wp_filesystem;
    182188        $this->filesystem_init();
     
    264270
    265271        if ( is_dir( $dir ) && is_writable( $dir ) ) {
     272            $this->init_index_file( $dir );
    266273            $htaccess_file = path_join( $dir, '.htaccess' );
    267274
     
    294301        }
    295302    }
     303
     304    /**
     305     * Initializes the index.php file.
     306     *
     307     * @param string $dir Upload dir path.
     308     * @return void
     309     */
     310    private function init_index_file( $dir ) {
     311        $index_file    = path_join( $dir, 'index.php' );
     312
     313        if ( file_exists( $index_file ) ) {
     314            list( , $second_line_comment ) = (array) file(
     315                $index_file,
     316                FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES
     317            );
     318
     319            if ( '// Silence is golden.' === $second_line_comment ) {
     320                return;
     321            }
     322        }
     323
     324        $handle = @fopen( $index_file, 'w' );
     325
     326        if ( $handle ) {
     327            fwrite( $handle, "<?php\n" );
     328            fwrite( $handle, '// Silence is golden.' );
     329
     330            fclose( $handle );
     331        }
     332    }
    296333}
  • wpcf7-redirect/tags/3.2.8/readme.txt

    r3422864 r3423970  
    44Requires at least: 5.2.0
    55Tested up to: 6.9
    6 Stable tag: 3.2.7
     6Stable tag: 3.2.8
    77License: GPLv3 or later
    88License URI: http://www.gnu.org/licenses/gpl-3.0.html
     
    153153
    154154== Changelog ==
     155
     156#####   Version 3.2.8 (2025-12-19)
     157
     158- Enhanced security
     159
     160
     161
    155162
    156163#####   Version 3.2.7 (2025-10-15)
  • wpcf7-redirect/tags/3.2.8/vendor/codeinwp/themeisle-sdk/load.php

    r3378810 r3423970  
    1515}
    1616// Current SDK version and path.
    17 $themeisle_sdk_version = '3.3.49';
     17$themeisle_sdk_version = '3.3.50';
    1818$themeisle_sdk_path    = dirname( __FILE__ );
    1919
  • wpcf7-redirect/tags/3.2.8/vendor/codeinwp/themeisle-sdk/src/Loader.php

    r3378810 r3423970  
    332332     */
    333333    public static function init() {
    334         /**
    335          * This filter can be used to localize the labels inside each product.
    336          */
    337         self::$labels = apply_filters( 'themeisle_sdk_labels', self::$labels );
     334        self::localize_labels();
    338335        if ( ! isset( self::$instance ) && ! ( self::$instance instanceof Loader ) ) {
    339336            self::$instance = new Loader();
     
    347344
    348345            add_action( 'themeisle_sdk_first_activation', array( __CLASS__, 'activate' ) );
    349         }
     346       
     347        }
     348    }
     349   
     350    /**
     351     * Localize the labels.
     352     */
     353    public static function localize_labels() {
     354        $originals        = self::$labels;
     355        $all_translations = [];
     356
     357        global $wp_filter;
     358        if ( isset( $wp_filter['themeisle_sdk_labels'] ) ) {
     359            foreach ( $wp_filter['themeisle_sdk_labels']->callbacks as $priority => $hooks ) {
     360                foreach ( $hooks as $hook ) {
     361                    // Each callback gets fresh originals, not previous callback's output
     362                    $result             = call_user_func( $hook['function'], $originals );
     363                    $all_translations[] = $result;
     364                }
     365            }
     366           
     367            // Remove the filter so it doesn't run again via apply_filters
     368            remove_all_filters( 'themeisle_sdk_labels' );
     369        }
     370
     371        // Merge all results, first real translation wins
     372        self::$labels = self::merge_all_translations( $originals, $all_translations );
     373    }
     374    /**
     375     * Merge all translations.
     376     *
     377     * @param array $originals The original labels.
     378     * @param array $all_translations The all translations.
     379     *
     380     * @return array The merged labels.
     381     */
     382    private static function merge_all_translations( $originals, $all_translations ) {
     383        $result = $originals;
     384       
     385        foreach ( $all_translations as $translations ) {
     386            $result = self::merge_if_translated( $result, $translations, $originals );
     387        }
     388       
     389        return $result;
     390    }
     391    /**
     392     * Merge if translated.
     393     *
     394     * @param array $current The current labels.
     395     * @param array $new The new labels.
     396     * @param array $originals The original labels.
     397     * @return array The merged labels.
     398     */
     399    private static function merge_if_translated( $current, $new, $originals ) {
     400        foreach ( $new as $key => $value ) {
     401            if ( ! isset( $originals[ $key ] ) ) {
     402                // New key, accept it
     403                if ( ! isset( $current[ $key ] ) ) {
     404                    $current[ $key ] = $value;
     405                }
     406                continue;
     407            }
     408           
     409            if ( is_array( $value ) && is_array( $originals[ $key ] ) ) {
     410                $current[ $key ] = self::merge_if_translated(
     411                    $current[ $key ],
     412                    $value,
     413                    $originals[ $key ]
     414                );
     415            } else {
     416                // Only accept if:
     417                // 1. New value is actually translated (differs from original)
     418                // 2. Current value is NOT already translated
     419                $is_new_translated       = ( $value !== $originals[ $key ] );
     420                $is_current_untranslated = ( $current[ $key ] === $originals[ $key ] );
     421               
     422                if ( $is_new_translated && $is_current_untranslated ) {
     423                    $current[ $key ] = $value;
     424                }
     425            }
     426        }
     427       
     428        return $current;
    350429    }
    351430
  • wpcf7-redirect/tags/3.2.8/vendor/codeinwp/themeisle-sdk/src/Modules/Announcements.php

    r3299385 r3423970  
    246246        }
    247247
     248        $logo_url           = ! empty( $data['logo_url'] ) ? $data['logo_url'] : $this->get_sdk_uri() . 'assets/images/themeisle-logo.png';
     249        $cta_label          = ! empty( $data['cta_label'] ) ? $data['cta_label'] : Loader::$labels['announcements']['notice_link_label'];
    248250        $sale_url           = ! empty( $data['sale_url'] ) ? $data['sale_url'] : '';
    249251        $hide_other_notices = ! empty( $data['hide_other_notices'] ) ? $data['hide_other_notices'] : ! $can_dismiss;
     
    341343                    <img
    342344                        width="45"
    343                         src="<?php echo esc_url( $this->get_sdk_uri() . 'assets/images/themeisle-logo.png' ); ?>"
     345                        src="<?php echo esc_url( $logo_url ); ?>"
    344346                    />
    345347                </div>
     
    361363                        class="button button-primary themeisle-sale-button"
    362364                    >
    363                     <?php echo esc_html( Loader::$labels['announcements']['notice_link_label'] ); ?>
     365                    <?php echo esc_html( $cta_label ); ?>
    364366                    </a>
    365367                </div>
  • wpcf7-redirect/tags/3.2.8/vendor/composer/installed.json

    r3378810 r3423970  
    33        {
    44            "name": "codeinwp/themeisle-sdk",
    5             "version": "3.3.49",
    6             "version_normalized": "3.3.49.0",
     5            "version": "3.3.50",
     6            "version_normalized": "3.3.50.0",
    77            "source": {
    88                "type": "git",
    99                "url": "https://github.com/Codeinwp/themeisle-sdk.git",
    10                 "reference": "605f78bbbd8526f7597a89077791043d9ecc8c20"
     10                "reference": "3c1f8dfc2390e667bbc086c5d660900a7985efa6"
    1111            },
    1212            "dist": {
    1313                "type": "zip",
    14                 "url": "https://api.github.com/repos/Codeinwp/themeisle-sdk/zipball/605f78bbbd8526f7597a89077791043d9ecc8c20",
    15                 "reference": "605f78bbbd8526f7597a89077791043d9ecc8c20",
     14                "url": "https://api.github.com/repos/Codeinwp/themeisle-sdk/zipball/3c1f8dfc2390e667bbc086c5d660900a7985efa6",
     15                "reference": "3c1f8dfc2390e667bbc086c5d660900a7985efa6",
    1616                "shasum": ""
    1717            },
     
    2020                "yoast/phpunit-polyfills": "^2.0"
    2121            },
    22             "time": "2025-09-18T13:41:05+00:00",
     22            "time": "2025-11-25T19:36:35+00:00",
    2323            "type": "library",
    2424            "installation-source": "dist",
     
    4141            "support": {
    4242                "issues": "https://github.com/Codeinwp/themeisle-sdk/issues",
    43                 "source": "https://github.com/Codeinwp/themeisle-sdk/tree/v3.3.49"
     43                "source": "https://github.com/Codeinwp/themeisle-sdk/tree/v3.3.50"
    4444            },
    4545            "install-path": "../codeinwp/themeisle-sdk"
  • wpcf7-redirect/tags/3.2.8/vendor/composer/installed.php

    r3378810 r3423970  
    22    'root' => array(
    33        'name' => 'codeinwp/redirection-for-contact-form-7',
    4         'pretty_version' => 'v3.2.7',
    5         'version' => '3.2.7.0',
    6         'reference' => '9cb057ba7f84897e50999bb7ad33ed26754d1d0b',
     4        'pretty_version' => 'v3.2.8',
     5        'version' => '3.2.8.0',
     6        'reference' => '7fb33bb24bd77aa5378bd38a04372aadee884478',
    77        'type' => 'wordpress-plugin',
    88        'install_path' => __DIR__ . '/../../',
     
    1212    'versions' => array(
    1313        'codeinwp/redirection-for-contact-form-7' => array(
    14             'pretty_version' => 'v3.2.7',
    15             'version' => '3.2.7.0',
    16             'reference' => '9cb057ba7f84897e50999bb7ad33ed26754d1d0b',
     14            'pretty_version' => 'v3.2.8',
     15            'version' => '3.2.8.0',
     16            'reference' => '7fb33bb24bd77aa5378bd38a04372aadee884478',
    1717            'type' => 'wordpress-plugin',
    1818            'install_path' => __DIR__ . '/../../',
     
    2121        ),
    2222        'codeinwp/themeisle-sdk' => array(
    23             'pretty_version' => '3.3.49',
    24             'version' => '3.3.49.0',
    25             'reference' => '605f78bbbd8526f7597a89077791043d9ecc8c20',
     23            'pretty_version' => '3.3.50',
     24            'version' => '3.3.50.0',
     25            'reference' => '3c1f8dfc2390e667bbc086c5d660900a7985efa6',
    2626            'type' => 'library',
    2727            'install_path' => __DIR__ . '/../codeinwp/themeisle-sdk',
  • wpcf7-redirect/tags/3.2.8/wpcf7-redirect.php

    r3378810 r3423970  
    33 * Plugin Name:  Redirection for Contact Form 7
    44 * Description:  The ultimate add-on for Contact Form 7 - redirect to any page after submission, fire scripts, save submissions in database, and much more options to make Contact Form 7 powerful than ever.
    5  * Version:      3.2.7
     5 * Version:      3.2.8
    66 * Author:       Themeisle
    77 * Author URI:   http://themeisle.com
     
    2929}
    3030
    31 define( 'WPCF7_PRO_REDIRECT_PLUGIN_VERSION', '3.2.7' );
     31define( 'WPCF7_PRO_REDIRECT_PLUGIN_VERSION', '3.2.8' );
    3232define( 'WPCF7_PRO_MIGRATION_VERSION', '1' );
    3333define( 'WPCF7_PRO_REDIRECT_CLASSES_PATH', plugin_dir_path( __FILE__ ) . 'classes/' );
  • wpcf7-redirect/trunk/classes/class-wpcf7r-save-files.php

    r3340847 r3423970  
    179179     */
    180180    public function move_file_to_upload( $file_path ) {
     181
     182        $validate = wp_check_filetype( $file_path );
     183        if ( ! $validate['type'] || preg_match( '#^[a-zA-Z0-9+.-]+://#', $file_path ) ) {
     184            die( esc_html__( 'File type is not allowed', 'wpcf7-redirect' ) );
     185        }
     186
    181187        global $wp_filesystem;
    182188        $this->filesystem_init();
     
    264270
    265271        if ( is_dir( $dir ) && is_writable( $dir ) ) {
     272            $this->init_index_file( $dir );
    266273            $htaccess_file = path_join( $dir, '.htaccess' );
    267274
     
    294301        }
    295302    }
     303
     304    /**
     305     * Initializes the index.php file.
     306     *
     307     * @param string $dir Upload dir path.
     308     * @return void
     309     */
     310    private function init_index_file( $dir ) {
     311        $index_file    = path_join( $dir, 'index.php' );
     312
     313        if ( file_exists( $index_file ) ) {
     314            list( , $second_line_comment ) = (array) file(
     315                $index_file,
     316                FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES
     317            );
     318
     319            if ( '// Silence is golden.' === $second_line_comment ) {
     320                return;
     321            }
     322        }
     323
     324        $handle = @fopen( $index_file, 'w' );
     325
     326        if ( $handle ) {
     327            fwrite( $handle, "<?php\n" );
     328            fwrite( $handle, '// Silence is golden.' );
     329
     330            fclose( $handle );
     331        }
     332    }
    296333}
  • wpcf7-redirect/trunk/readme.txt

    r3422864 r3423970  
    44Requires at least: 5.2.0
    55Tested up to: 6.9
    6 Stable tag: 3.2.7
     6Stable tag: 3.2.8
    77License: GPLv3 or later
    88License URI: http://www.gnu.org/licenses/gpl-3.0.html
     
    153153
    154154== Changelog ==
     155
     156#####   Version 3.2.8 (2025-12-19)
     157
     158- Enhanced security
     159
     160
     161
    155162
    156163#####   Version 3.2.7 (2025-10-15)
  • wpcf7-redirect/trunk/vendor/codeinwp/themeisle-sdk/load.php

    r3378810 r3423970  
    1515}
    1616// Current SDK version and path.
    17 $themeisle_sdk_version = '3.3.49';
     17$themeisle_sdk_version = '3.3.50';
    1818$themeisle_sdk_path    = dirname( __FILE__ );
    1919
  • wpcf7-redirect/trunk/vendor/codeinwp/themeisle-sdk/src/Loader.php

    r3378810 r3423970  
    332332     */
    333333    public static function init() {
    334         /**
    335          * This filter can be used to localize the labels inside each product.
    336          */
    337         self::$labels = apply_filters( 'themeisle_sdk_labels', self::$labels );
     334        self::localize_labels();
    338335        if ( ! isset( self::$instance ) && ! ( self::$instance instanceof Loader ) ) {
    339336            self::$instance = new Loader();
     
    347344
    348345            add_action( 'themeisle_sdk_first_activation', array( __CLASS__, 'activate' ) );
    349         }
     346       
     347        }
     348    }
     349   
     350    /**
     351     * Localize the labels.
     352     */
     353    public static function localize_labels() {
     354        $originals        = self::$labels;
     355        $all_translations = [];
     356
     357        global $wp_filter;
     358        if ( isset( $wp_filter['themeisle_sdk_labels'] ) ) {
     359            foreach ( $wp_filter['themeisle_sdk_labels']->callbacks as $priority => $hooks ) {
     360                foreach ( $hooks as $hook ) {
     361                    // Each callback gets fresh originals, not previous callback's output
     362                    $result             = call_user_func( $hook['function'], $originals );
     363                    $all_translations[] = $result;
     364                }
     365            }
     366           
     367            // Remove the filter so it doesn't run again via apply_filters
     368            remove_all_filters( 'themeisle_sdk_labels' );
     369        }
     370
     371        // Merge all results, first real translation wins
     372        self::$labels = self::merge_all_translations( $originals, $all_translations );
     373    }
     374    /**
     375     * Merge all translations.
     376     *
     377     * @param array $originals The original labels.
     378     * @param array $all_translations The all translations.
     379     *
     380     * @return array The merged labels.
     381     */
     382    private static function merge_all_translations( $originals, $all_translations ) {
     383        $result = $originals;
     384       
     385        foreach ( $all_translations as $translations ) {
     386            $result = self::merge_if_translated( $result, $translations, $originals );
     387        }
     388       
     389        return $result;
     390    }
     391    /**
     392     * Merge if translated.
     393     *
     394     * @param array $current The current labels.
     395     * @param array $new The new labels.
     396     * @param array $originals The original labels.
     397     * @return array The merged labels.
     398     */
     399    private static function merge_if_translated( $current, $new, $originals ) {
     400        foreach ( $new as $key => $value ) {
     401            if ( ! isset( $originals[ $key ] ) ) {
     402                // New key, accept it
     403                if ( ! isset( $current[ $key ] ) ) {
     404                    $current[ $key ] = $value;
     405                }
     406                continue;
     407            }
     408           
     409            if ( is_array( $value ) && is_array( $originals[ $key ] ) ) {
     410                $current[ $key ] = self::merge_if_translated(
     411                    $current[ $key ],
     412                    $value,
     413                    $originals[ $key ]
     414                );
     415            } else {
     416                // Only accept if:
     417                // 1. New value is actually translated (differs from original)
     418                // 2. Current value is NOT already translated
     419                $is_new_translated       = ( $value !== $originals[ $key ] );
     420                $is_current_untranslated = ( $current[ $key ] === $originals[ $key ] );
     421               
     422                if ( $is_new_translated && $is_current_untranslated ) {
     423                    $current[ $key ] = $value;
     424                }
     425            }
     426        }
     427       
     428        return $current;
    350429    }
    351430
  • wpcf7-redirect/trunk/vendor/codeinwp/themeisle-sdk/src/Modules/Announcements.php

    r3299385 r3423970  
    246246        }
    247247
     248        $logo_url           = ! empty( $data['logo_url'] ) ? $data['logo_url'] : $this->get_sdk_uri() . 'assets/images/themeisle-logo.png';
     249        $cta_label          = ! empty( $data['cta_label'] ) ? $data['cta_label'] : Loader::$labels['announcements']['notice_link_label'];
    248250        $sale_url           = ! empty( $data['sale_url'] ) ? $data['sale_url'] : '';
    249251        $hide_other_notices = ! empty( $data['hide_other_notices'] ) ? $data['hide_other_notices'] : ! $can_dismiss;
     
    341343                    <img
    342344                        width="45"
    343                         src="<?php echo esc_url( $this->get_sdk_uri() . 'assets/images/themeisle-logo.png' ); ?>"
     345                        src="<?php echo esc_url( $logo_url ); ?>"
    344346                    />
    345347                </div>
     
    361363                        class="button button-primary themeisle-sale-button"
    362364                    >
    363                     <?php echo esc_html( Loader::$labels['announcements']['notice_link_label'] ); ?>
     365                    <?php echo esc_html( $cta_label ); ?>
    364366                    </a>
    365367                </div>
  • wpcf7-redirect/trunk/vendor/composer/installed.json

    r3378810 r3423970  
    33        {
    44            "name": "codeinwp/themeisle-sdk",
    5             "version": "3.3.49",
    6             "version_normalized": "3.3.49.0",
     5            "version": "3.3.50",
     6            "version_normalized": "3.3.50.0",
    77            "source": {
    88                "type": "git",
    99                "url": "https://github.com/Codeinwp/themeisle-sdk.git",
    10                 "reference": "605f78bbbd8526f7597a89077791043d9ecc8c20"
     10                "reference": "3c1f8dfc2390e667bbc086c5d660900a7985efa6"
    1111            },
    1212            "dist": {
    1313                "type": "zip",
    14                 "url": "https://api.github.com/repos/Codeinwp/themeisle-sdk/zipball/605f78bbbd8526f7597a89077791043d9ecc8c20",
    15                 "reference": "605f78bbbd8526f7597a89077791043d9ecc8c20",
     14                "url": "https://api.github.com/repos/Codeinwp/themeisle-sdk/zipball/3c1f8dfc2390e667bbc086c5d660900a7985efa6",
     15                "reference": "3c1f8dfc2390e667bbc086c5d660900a7985efa6",
    1616                "shasum": ""
    1717            },
     
    2020                "yoast/phpunit-polyfills": "^2.0"
    2121            },
    22             "time": "2025-09-18T13:41:05+00:00",
     22            "time": "2025-11-25T19:36:35+00:00",
    2323            "type": "library",
    2424            "installation-source": "dist",
     
    4141            "support": {
    4242                "issues": "https://github.com/Codeinwp/themeisle-sdk/issues",
    43                 "source": "https://github.com/Codeinwp/themeisle-sdk/tree/v3.3.49"
     43                "source": "https://github.com/Codeinwp/themeisle-sdk/tree/v3.3.50"
    4444            },
    4545            "install-path": "../codeinwp/themeisle-sdk"
  • wpcf7-redirect/trunk/vendor/composer/installed.php

    r3378810 r3423970  
    22    'root' => array(
    33        'name' => 'codeinwp/redirection-for-contact-form-7',
    4         'pretty_version' => 'v3.2.7',
    5         'version' => '3.2.7.0',
    6         'reference' => '9cb057ba7f84897e50999bb7ad33ed26754d1d0b',
     4        'pretty_version' => 'v3.2.8',
     5        'version' => '3.2.8.0',
     6        'reference' => '7fb33bb24bd77aa5378bd38a04372aadee884478',
    77        'type' => 'wordpress-plugin',
    88        'install_path' => __DIR__ . '/../../',
     
    1212    'versions' => array(
    1313        'codeinwp/redirection-for-contact-form-7' => array(
    14             'pretty_version' => 'v3.2.7',
    15             'version' => '3.2.7.0',
    16             'reference' => '9cb057ba7f84897e50999bb7ad33ed26754d1d0b',
     14            'pretty_version' => 'v3.2.8',
     15            'version' => '3.2.8.0',
     16            'reference' => '7fb33bb24bd77aa5378bd38a04372aadee884478',
    1717            'type' => 'wordpress-plugin',
    1818            'install_path' => __DIR__ . '/../../',
     
    2121        ),
    2222        'codeinwp/themeisle-sdk' => array(
    23             'pretty_version' => '3.3.49',
    24             'version' => '3.3.49.0',
    25             'reference' => '605f78bbbd8526f7597a89077791043d9ecc8c20',
     23            'pretty_version' => '3.3.50',
     24            'version' => '3.3.50.0',
     25            'reference' => '3c1f8dfc2390e667bbc086c5d660900a7985efa6',
    2626            'type' => 'library',
    2727            'install_path' => __DIR__ . '/../codeinwp/themeisle-sdk',
  • wpcf7-redirect/trunk/wpcf7-redirect.php

    r3378810 r3423970  
    33 * Plugin Name:  Redirection for Contact Form 7
    44 * Description:  The ultimate add-on for Contact Form 7 - redirect to any page after submission, fire scripts, save submissions in database, and much more options to make Contact Form 7 powerful than ever.
    5  * Version:      3.2.7
     5 * Version:      3.2.8
    66 * Author:       Themeisle
    77 * Author URI:   http://themeisle.com
     
    2929}
    3030
    31 define( 'WPCF7_PRO_REDIRECT_PLUGIN_VERSION', '3.2.7' );
     31define( 'WPCF7_PRO_REDIRECT_PLUGIN_VERSION', '3.2.8' );
    3232define( 'WPCF7_PRO_MIGRATION_VERSION', '1' );
    3333define( 'WPCF7_PRO_REDIRECT_CLASSES_PATH', plugin_dir_path( __FILE__ ) . 'classes/' );
Note: See TracChangeset for help on using the changeset viewer.