Complex classes like Give_Updates often do a lot of different things. To break such a class down, we need to identify a cohesive component within that class. A common approach to find such a component is to look for fields/methods that share the same prefixes, or suffixes. You can also have a look at the cohesion graph to spot any un-connected, or weakly-connected components.
Once you have determined the fields that belong together, you can apply the Extract Class refactoring. If the component makes sense as a sub-class, Extract Subclass is also a candidate, and is often faster.
While breaking up the class, it is a good idea to analyze how other classes use Give_Updates, and based on these observations, apply Extract Interface, too.
| 1 | <?php  | 
            ||
| 9 | class Give_Updates { | 
            ||
| 10 | /**  | 
            ||
| 11 | * Instance.  | 
            ||
| 12 | *  | 
            ||
| 13 | * @since  | 
            ||
| 14 | * @access static  | 
            ||
| 15 | * @var  | 
            ||
| 16 | */  | 
            ||
| 17 | static private $instance;  | 
            ||
| 18 | |||
| 19 | /**  | 
            ||
| 20 | * Updates  | 
            ||
| 21 | *  | 
            ||
| 22 | * @since 1.8.12  | 
            ||
| 23 | * @access private  | 
            ||
| 24 | * @var array  | 
            ||
| 25 | */  | 
            ||
| 26 | static private $updates = array();  | 
            ||
| 27 | |||
| 28 | |||
| 29 | /**  | 
            ||
| 30 | * Current update percentage number  | 
            ||
| 31 | *  | 
            ||
| 32 | * @since 1.8.12  | 
            ||
| 33 | * @access private  | 
            ||
| 34 | * @var array  | 
            ||
| 35 | */  | 
            ||
| 36 | static public $percentage = 0;  | 
            ||
| 37 | |||
| 38 | /**  | 
            ||
| 39 | * Current update step number  | 
            ||
| 40 | *  | 
            ||
| 41 | * @since 1.8.12  | 
            ||
| 42 | * @access private  | 
            ||
| 43 | * @var array  | 
            ||
| 44 | */  | 
            ||
| 45 | static public $step = 1;  | 
            ||
| 46 | |||
| 47 | /**  | 
            ||
| 48 | * Current update number  | 
            ||
| 49 | *  | 
            ||
| 50 | * @since 1.8.12  | 
            ||
| 51 | * @access private  | 
            ||
| 52 | * @var array  | 
            ||
| 53 | */  | 
            ||
| 54 | static public $update = 1;  | 
            ||
| 55 | |||
| 56 | /**  | 
            ||
| 57 | * Singleton pattern.  | 
            ||
| 58 | *  | 
            ||
| 59 | * @since 1.8.12  | 
            ||
| 60 | * @access private  | 
            ||
| 61 | *  | 
            ||
| 62 | * @param Give_Updates .  | 
            ||
| 63 | */  | 
            ||
| 64 | 	private function __construct() { | 
            ||
| 66 | |||
| 67 | /**  | 
            ||
| 68 | * Register updates  | 
            ||
| 69 | *  | 
            ||
| 70 | * @since 1.8.12  | 
            ||
| 71 | * @access public  | 
            ||
| 72 | *  | 
            ||
| 73 | * @param array $args  | 
            ||
| 74 | */  | 
            ||
| 75 | 	public function register( $args ) { | 
            ||
| 94 | |||
| 95 | |||
| 96 | /**  | 
            ||
| 97 | * Get updates.  | 
            ||
| 98 | *  | 
            ||
| 99 | * @since 1.8.12  | 
            ||
| 100 | * @access public  | 
            ||
| 101 | *  | 
            ||
| 102 | * @param string $update_type Tye of update.  | 
            ||
| 103 | * @param string $status Tye of update.  | 
            ||
| 104 | *  | 
            ||
| 105 | * @return array  | 
            ||
| 106 | */  | 
            ||
| 107 | 	public function get_updates( $update_type = '', $status = 'all' ) { | 
            ||
| 141 | |||
| 142 | |||
| 143 | /**  | 
            ||
| 144 | * Get instance.  | 
            ||
| 145 | *  | 
            ||
| 146 | * @since  | 
            ||
| 147 | * @access static  | 
            ||
| 148 | * @return static  | 
            ||
| 149 | */  | 
            ||
| 150 | 	static function get_instance() { | 
            ||
| 157 | |||
| 158 | /**  | 
            ||
| 159 | *  | 
            ||
| 160 | * Setup hook  | 
            ||
| 161 | *  | 
            ||
| 162 | * @since 1.8.12  | 
            ||
| 163 | * @access public  | 
            ||
| 164 | *  | 
            ||
| 165 | */  | 
            ||
| 166 | 	public function setup() { | 
            ||
| 181 | |||
| 182 | /**  | 
            ||
| 183 | * Register plugin addon updates  | 
            ||
| 184 | *  | 
            ||
| 185 | * @since 1.8.12  | 
            ||
| 186 | * @access public  | 
            ||
| 187 | */  | 
            ||
| 188 | 	public function __register_plugin_addon_updates() { | 
            ||
| 200 | |||
| 201 | |||
| 202 | /**  | 
            ||
| 203 | * Fire custom aciton hook to register updates  | 
            ||
| 204 | *  | 
            ||
| 205 | * @since 1.8.12  | 
            ||
| 206 | * @access public  | 
            ||
| 207 | */  | 
            ||
| 208 | 	public function __register_upgrade() { | 
            ||
| 220 | |||
| 221 | /**  | 
            ||
| 222 | * Rename `Donations` menu title if updates exists  | 
            ||
| 223 | *  | 
            ||
| 224 | * @since 1.8.12  | 
            ||
| 225 | * @access public  | 
            ||
| 226 | */  | 
            ||
| 227 | 	function __change_donations_label() { | 
            ||
| 249 | |||
| 250 | /**  | 
            ||
| 251 | * Register updates menu  | 
            ||
| 252 | *  | 
            ||
| 253 | * @since 1.8.12  | 
            ||
| 254 | * @access public  | 
            ||
| 255 | */  | 
            ||
| 256 | 	public function __register_menu() { | 
            ||
| 279 | |||
| 280 | /**  | 
            ||
| 281 | * Get tottal updates count  | 
            ||
| 282 | *  | 
            ||
| 283 | * @since 1.8.12  | 
            ||
| 284 | * @access public  | 
            ||
| 285 | * @return int  | 
            ||
| 286 | */  | 
            ||
| 287 | 	public function get_db_update_count() { | 
            ||
| 290 | |||
| 291 | |||
| 292 | /**  | 
            ||
| 293 | * Render Give Updates page  | 
            ||
| 294 | *  | 
            ||
| 295 | * @since 1.8.12  | 
            ||
| 296 | * @access public  | 
            ||
| 297 | */  | 
            ||
| 298 | 	public function render_page() { | 
            ||
| 301 | |||
| 302 | /**  | 
            ||
| 303 | * Get addon update count.  | 
            ||
| 304 | *  | 
            ||
| 305 | * @since 1.8.12  | 
            ||
| 306 | * @access public  | 
            ||
| 307 | * @return int  | 
            ||
| 308 | */  | 
            ||
| 309 | 	public function get_plugin_update_count() { | 
            ||
| 312 | |||
| 313 | /**  | 
            ||
| 314 | * Get total update count  | 
            ||
| 315 | *  | 
            ||
| 316 | * @since 1.8.12  | 
            ||
| 317 | * @access public  | 
            ||
| 318 | *  | 
            ||
| 319 | * @return int  | 
            ||
| 320 | */  | 
            ||
| 321 | 	public function get_update_count() { | 
            ||
| 327 | |||
| 328 | |||
| 329 | /**  | 
            ||
| 330 | * Delete resume updates  | 
            ||
| 331 | *  | 
            ||
| 332 | * @since 1.8.12  | 
            ||
| 333 | * @access public  | 
            ||
| 334 | */  | 
            ||
| 335 | 	public function __flush_resume_updates() { | 
            ||
| 343 | |||
| 344 | /**  | 
            ||
| 345 | * Process give updates.  | 
            ||
| 346 | *  | 
            ||
| 347 | * @since 1.8.12  | 
            ||
| 348 | * @access public  | 
            ||
| 349 | */  | 
            ||
| 350 | 	public function __give_ajax_updates() { | 
            ||
| 445 | |||
| 446 | /**  | 
            ||
| 447 | * Send ajax response  | 
            ||
| 448 | *  | 
            ||
| 449 | * @since 1.8.12  | 
            ||
| 450 | * @access public  | 
            ||
| 451 | *  | 
            ||
| 452 | * @param $data  | 
            ||
| 453 | * @param string $type  | 
            ||
| 454 | */  | 
            ||
| 455 | 	public function send_ajax_response( $data, $type = '' ) { | 
            ||
| 481 | |||
| 482 | |||
| 483 | /**  | 
            ||
| 484 | * Resume updates  | 
            ||
| 485 | * @since 1.8.12  | 
            ||
| 486 | * @access public  | 
            ||
| 487 | *  | 
            ||
| 488 | * @return bool|int  | 
            ||
| 489 | */  | 
            ||
| 490 | 	public function resume_updates() { | 
            ||
| 499 | }  | 
            ||
| 500 | |||
| 501 | Give_Updates::get_instance()->setup();  | 
            
The PSR-1: Basic Coding Standard recommends that a file should either introduce new symbols, that is classes, functions, constants or similar, or have side effects. Side effects are anything that executes logic, like for example printing output, changing ini settings or writing to a file.
The idea behind this recommendation is that merely auto-loading a class should not change the state of an application. It also promotes a cleaner style of programming and makes your code less prone to errors, because the logic is not spread out all over the place.
To learn more about the PSR-1, please see the PHP-FIG site on the PSR-1.