• File: SiteHealth.php
  • Full Path: /home/matthif/www/wp-content/plugins/wpforms-lite/src/Admin/SiteHealth.php
  • Date Modified: 02/16/2024 11:45 AM
  • File size: 3.09 KB
  • MIME-type: text/x-php
  • Charset: utf-8
<?php

namespace WPForms\Admin;

/**
 * Site Health WPForms Info.
 *
 * @since 1.5.5
 */
class SiteHealth {

    
/**
     * Indicate if Site Health is allowed to load.
     *
     * @since 1.5.5
     *
     * @return bool
     */
    
private function allow_load() {

        global 
$wp_version;

        return 
version_compare$wp_version'5.2''>=' );
    }

    
/**
     * Init Site Health.
     *
     * @since 1.5.5
     */
    
final public function init() {

        if ( ! 
$this->allow_load() ) {
            return;
        }

        
$this->hooks();
    }

    
/**
     * Integration hooks.
     *
     * @since 1.5.5
     */
    
protected function hooks() {

        
add_filter'debug_information', [ $this'add_info_section' ] );
    }

    
/**
     * Add WPForms section to Info tab.
     *
     * @since 1.5.5
     *
     * @param array $debug_info Array of all information.
     *
     * @return array Array with added WPForms info section.
     */
    
public function add_info_section$debug_info ) { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.TooHigh

        
$wpforms = [
            
'label'  => 'WPForms',
            
'fields' => [
                
'version' => [
                    
'label' => esc_html__'Version''wpforms-lite' ),
                    
'value' => WPFORMS_VERSION,
                ],
            ],
        ];

        
// Install date.
        
$activated get_option'wpforms_activated', [] );

        if ( ! empty( 
$activated['lite'] ) ) {
            
$wpforms['fields']['lite'] = [
                
'label' => esc_html__'Lite install date''wpforms-lite' ),
                
'value' => wpforms_datetime_format$activated['lite'], ''true ),
            ];
        }

        if ( ! empty( 
$activated['pro'] ) ) {
            
$wpforms['fields']['pro'] = [
                
'label' => esc_html__'Pro install date''wpforms-lite' ),
                
'value' => wpforms_datetime_format$activated['pro'], ''true ),
            ];
        }

        
// Permissions for the upload directory.
        
$upload_dir                      wpforms_upload_dir();
        
$wpforms['fields']['upload_dir'] = [
            
'label' => esc_html__'Uploads directory''wpforms-lite' ),
            
'value' => empty( $upload_dir['error'] ) && ! empty( $upload_dir['path'] ) && wp_is_writable$upload_dir['path'] ) ? esc_html__'Writable''wpforms-lite' ) : esc_html__'Not writable''wpforms-lite' ),
        ];

        
// DB tables.
        
$db_tables wpforms()->get_existing_custom_tables();

        if ( 
$db_tables ) {
            
$db_tables_str = empty( $db_tables ) ? esc_html__'Not found''wpforms-lite' ) : implode', '$db_tables );

            
$wpforms['fields']['db_tables'] = [
                
'label'   => esc_html__'DB tables''wpforms-lite' ),
                
'value'   => $db_tables_str,
                
'private' => true,
            ];
        }

        
// Total forms.
        
$wpforms['fields']['total_forms'] = [
            
'label' => esc_html__'Total forms''wpforms-lite' ),
            
'value' => wp_count_posts'wpforms' )->publish,
        ];

        if ( ! 
wpforms()->is_pro() ) {

            
$forms wpforms()->get'form' )->get'', [ 'fields' => 'ids' ] );

            if ( empty( 
$forms ) || ! is_array$forms ) ) {
                
$forms = [];
            }

            
$count 0;

            foreach ( 
$forms as $form_id ) {
                
$count += (int) get_post_meta$form_id'wpforms_entries_count'true );
            }

            
$wpforms['fields']['total_submissions'] = [
                
'label' => esc_html__'Total submissions (since v1.5.0)''wpforms-lite' ),
                
'value' => $count,
            ];
        }

        
$debug_info['wpforms'] = $wpforms;

        return 
$debug_info;
    }
}