Make WordPress Core

Ticket #25716: 25716.4.diff

File 25716.4.diff, 2.1 KB (added by nacin, 11 years ago)

Hotfix...

  • hotfix.php

     
    1111WP_Hotfix_Controller::init();
    1212
    1313class WP_Hotfix_Controller {
     14        const DB_VERSION = 2;
     15
    1416        public static function init() {
    1517                add_action( 'init', 'wp_hotfix_init' );
    1618                register_activation_hook(   __FILE__, array( __CLASS__, 'activate'   ) );
    1719                register_deactivation_hook( __FILE__, array( __CLASS__, 'deactivate' ) );
     20                add_action( 'admin_init', array( __CLASS__, 'upgrade' ) );
    1821        }
    1922        public static function activate() {
    20                 add_option( 'hotfix_version', '1' );
     23                add_option( 'hotfix_version', self::DB_VERSION );
    2124                register_uninstall_hook( __FILE__, array( __CLASS__, 'uninstall' ) );
    2225        }
    2326        public static function deactivate() {
     
    2629        public static function uninstall() {
    2730                self::deactivate(); // The same, for now
    2831        }
     32        public static function upgrade() {
     33                $current_db_version = get_option( 'hotfix_version' );
     34                if ( self::DB_VERSION == $current_db_version )
     35                        return;
     36
     37                if ( $current_db_version < 2 ) {
     38                        $block_ssl_requests = wp_http_supports( array( 'ssl' ) ) && is_wp_error( wp_remote_get( 'https://api.wordpress.org/' ) );
     39                        update_option( 'hotfix_370_block_ssl_requests', $block_ssl_requests );
     40                }
     41
     42                update_option( 'hotfix_version', self::DB_VERSION );
     43        }
    2944}
    3045
    3146function wp_hotfix_init() {
     
    3449        $hotfixes = array();
    3550
    3651        switch ( $wp_version ) {
     52                case '3.7' :
     53                        $hotfixes = array( '370_http_ssl_support' );
     54                        break;
    3755                case '3.5' :
    3856                        $hotfixes = array( '350_twentytwelve', '350_iis_http_failure' );
    3957                        break;
     
    238256                return $temp;
    239257        return false;
    240258}
     259
     260function wp_hotfix_370_http_ssl_support() {
     261        add_filter( 'use_curl_transport', 'wp_hotfix_370_ssl_not_supported', 10, 2 );
     262        add_filter( 'use_streams_transport', 'wp_hotfix_370_ssl_not_supported', 10, 2 );
     263}
     264
     265function wp_hotfix_370_ssl_not_supported( $test, $args ) {
     266    if ( get_option( 'hotfix_370_block_ssl_requests' ) && ! empty( $args['ssl'] ) )
     267        return false;
     268    return $test;
     269}