algolia_php_version_check()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 2
eloc 3
c 1
b 0
f 0
nc 2
nop 0
dl 0
loc 5
rs 10
1
<?php
2
/**
3
 * Class for checking plugin requirements
4
 * Like checking PHP version, WordPress version and so on
5
 *
6
 * @package algolia-woo-indexer
7
 */
8
9
namespace Algowoo;
10
11
/**
12
 * Define minimum required versions of PHP and WordPress
13
 */
14
define( 'ALGOLIA_MIN_PHP_VERSION', '8.1' );
15
define( 'ALGOLIA_MIN_WP_VERSION', '6.1' );
16
17
/**
18
 * Abort if this file is called directly
19
 */
20
if ( ! defined( 'ABSPATH' ) ) {
21
	exit;
22
}
23
24
if ( ! class_exists( 'Algolia_Check_Requirements' ) ) {
25
	/**
26
	 * Check requirements for Algolia plugin
27
	 */
28
	class Algolia_Check_Requirements {
29
30
31
		/**
32
		 * Check for required PHP version.
33
		 *
34
		 * @return bool
35
		 */
36
		public static function algolia_php_version_check() {
37
			if ( version_compare( PHP_VERSION, ALGOLIA_MIN_PHP_VERSION, '<' ) ) {
38
				return false;
39
			}
40
			return true;
41
		}
42
43
		/**
44
		 * Check if values are empty and display error notice if not all values have been set
45
		 *
46
		 *  @param string $algolia_application_id Algolia application ID.
47
		 *  @param string $algolia_api_key Algolia API key.
48
		 *  @param string $algolia_index_name Algolia index name.
49
		 */
50
		public static function check_algolia_input_values( $algolia_application_id, $algolia_api_key, $algolia_index_name ) {
51
			if ( empty( $algolia_application_id ) || empty( $algolia_api_key || empty( $algolia_index_name ) ) ) {
52
				add_action(
53
					'admin_notices',
54
					function () {
55
						echo '<div class="error notice">
56
							  <p>' . esc_html__( 'All settings need to be set for the plugin to work.', 'algolia-woo-indexer' ) . '</p>
57
							</div>';
58
					}
59
				);
60
			}
61
		}
62
63
		/**
64
		 * Check for required WordPress version.
65
		 *
66
		 * @return bool
67
		 */
68
		public static function algolia_wp_version_check() {
69
			if ( version_compare( $GLOBALS['wp_version'], ALGOLIA_MIN_WP_VERSION, '<' ) ) {
70
				return false;
71
			}
72
			return true;
73
		}
74
75
		/**
76
		 * Check that we have all of the required PHP extensions installed
77
		 *
78
		 * @return void
79
		 */
80
		public static function check_unmet_requirements() {
81
			if ( ! extension_loaded( 'mbstring' ) ) {
82
				echo '<div class="error notice">
83
					  <p>' . esc_html__( 'Algolia Woo Indexer requires the "mbstring" PHP extension to be enabled. Please contact your hosting provider.', 'algolia-woo-indexer' ) . '</p>
84
				  </div>';
85
			} elseif ( ! function_exists( 'mb_ereg_replace' ) ) {
86
				echo '<div class="error notice">
87
					  <p>' . esc_html__( 'Algolia Woo Indexer needs "mbregex" NOT to be disabled. Please contact your hosting provider.', 'algolia-woo-indexer' ) . '</p>
88
				  </div>';
89
			}
90
			if ( ! extension_loaded( 'curl' ) ) {
91
				echo '<div class="error notice">
92
					  <p>' . esc_html__( 'Algolia Woo Indexer requires the "cURL" PHP extension to be enabled. Please contact your hosting provider.', 'algolia-woo-indexer' ) . '</p>
93
				  </div>';
94
				return;
95
			}
96
		}
97
	}
98
}
99