[ 'label' => __( 'PHP Version', 'reyblock-launchpad' ), 'value' => phpversion(), 'status' => version_compare( phpversion(), '7.4', '>=' ) ? 'good' : 'warning', 'recommended' => '7.4+', ], 'memory_limit' => [ 'label' => __( 'WordPress Memory Limit', 'reyblock-launchpad' ), 'value' => size_format( $memory_limit ), 'status' => $memory_limit >= $recommended_memory ? 'good' : 'warning', 'recommended' => '256 MB', ], 'execution_time' => [ 'label' => __( 'Max Execution Time', 'reyblock-launchpad' ), 'value' => $time_limit > 0 ? $time_limit . 's' : __( 'Unlimited', 'reyblock-launchpad' ), 'status' => ( $time_limit >= $recommended_time || 0 === $time_limit ) ? 'good' : 'warning', 'recommended' => '120s', ], 'xml_support' => [ 'label' => __( 'XML / SimpleXML Extension', 'reyblock-launchpad' ), 'value' => extension_loaded( 'xml' ) && extension_loaded( 'simplexml' ) ? __( 'Enabled', 'reyblock-launchpad' ) : __( 'Disabled', 'reyblock-launchpad' ), 'status' => extension_loaded( 'xml' ) && extension_loaded( 'simplexml' ) ? 'good' : 'bad', 'recommended' => __( 'Required for demo import', 'reyblock-launchpad' ), ], 'curl_support' => [ 'label' => __( 'cURL Support', 'reyblock-launchpad' ), 'value' => function_exists( 'curl_init' ) ? __( 'Enabled', 'reyblock-launchpad' ) : __( 'Disabled', 'reyblock-launchpad' ), 'status' => function_exists( 'curl_init' ) ? 'good' : 'bad', 'recommended' => __( 'Required for remote assets', 'reyblock-launchpad' ), ], 'write_permissions' => [ 'label' => __( 'Uploads Folder Writable', 'reyblock-launchpad' ), 'value' => wp_is_writable( wp_upload_dir()['basedir'] ) ? __( 'Writable', 'reyblock-launchpad' ) : __( 'Not Writable', 'reyblock-launchpad' ), 'status' => wp_is_writable( wp_upload_dir()['basedir'] ) ? 'good' : 'bad', 'recommended' => __( 'Required for media imports', 'reyblock-launchpad' ), ], ]; } /** * Check if all critical requirements are met. * * @return bool */ public function is_compatible() { $status = $this->get_status(); return $status['xml_support']['status'] === 'good' && $status['write_permissions']['status'] === 'good'; } }