63 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * WooCommerce.com Product Installation Requirements Check.
 | |
|  *
 | |
|  * @package WooCommerce\WCCom
 | |
|  * @since   3.8.0
 | |
|  */
 | |
| 
 | |
| use Automattic\Jetpack\Constants;
 | |
| 
 | |
| defined( 'ABSPATH' ) || exit;
 | |
| 
 | |
| /**
 | |
|  * WC_WCCOM_Site_Installer_Requirements_Check Class
 | |
|  * Contains functionality to check the necessary requirements for the installer.
 | |
|  */
 | |
| class WC_WCCOM_Site_Installer_Requirements_Check {
 | |
| 	/**
 | |
| 	 * Check if the site met the requirements
 | |
| 	 *
 | |
| 	 * @version 3.8.0
 | |
| 	 * @return bool|WP_Error Does the site met the requirements?
 | |
| 	 */
 | |
| 	public static function met_requirements() {
 | |
| 		$errs = array();
 | |
| 
 | |
| 		if ( ! self::met_wp_cron_requirement() ) {
 | |
| 			$errs[] = 'wp-cron';
 | |
| 		}
 | |
| 
 | |
| 		if ( ! self::met_filesystem_requirement() ) {
 | |
| 			$errs[] = 'filesystem';
 | |
| 		}
 | |
| 
 | |
| 		if ( ! empty( $errs ) ) {
 | |
| 			// translators: %s: Requirements unmet.
 | |
| 			return new WP_Error( 'requirements_not_met', sprintf( __( 'Server requirements not met, missing requirement(s): %s.', 'woocommerce' ), implode( ', ', $errs ) ), array( 'status' => 400 ) );
 | |
| 		}
 | |
| 
 | |
| 		return true;
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Validates if WP CRON is enabled.
 | |
| 	 *
 | |
| 	 * @since 3.8.0
 | |
| 	 * @return bool
 | |
| 	 */
 | |
| 	private static function met_wp_cron_requirement() {
 | |
| 		return ! Constants::is_true( 'DISABLE_WP_CRON' );
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Validates if `WP_CONTENT_DIR` is writable.
 | |
| 	 *
 | |
| 	 * @since 3.8.0
 | |
| 	 * @return bool
 | |
| 	 */
 | |
| 	private static function met_filesystem_requirement() {
 | |
| 		return is_writable( WP_CONTENT_DIR );
 | |
| 	}
 | |
| }
 |