class-wpml-support-page.php
2.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<?php
class WPML_Support_Page {
/**
* @var \WPML_WP_API
*/
private $wpml_wp_api;
/**
* WPML_Support_Page constructor.
*
* @param WPML_WP_API $wpml_wp_api
*/
public function __construct( &$wpml_wp_api ) {
$this->wpml_wp_api = &$wpml_wp_api;
$this->init_hooks();
}
public function display_compatibility_issues() {
$message = $this->get_message();
$this->render_message( $message );
}
/**
* @return string
*/
private function get_message() {
$message = '';
if ( ! $this->wpml_wp_api->extension_loaded( 'libxml' ) ) {
$message .= $this->missing_extension_message();
if ( $this->wpml_wp_api->version_compare_naked( $this->wpml_wp_api->phpversion(), '7.0.0', '>=' ) ) {
$message .= $this->missing_extension_message_for_php7();
}
$message .= $this->contact_the_admin();
return $message;
}
return $message;
}
private function init_hooks() {
add_action( 'wpml_support_page_after', array( $this, 'display_compatibility_issues' ) );
}
/**
* @return string
*/
private function missing_extension_message() {
return '<p class="missing-extension-message">'
. esc_html__( 'It looks like the %1$s extension, which is required by WPML, is not installed. Please refer to this link to know how to install this extension: %2$s.', 'sitepress' )
. '</p>';
}
/**
* @return string
*/
private function missing_extension_message_for_php7() {
return '<p class="missing-extension-message-for-php7">' . esc_html__( 'You are using PHP 7: in some cases, the extension might have been removed during a system update. In this case, please see %3$s.', 'sitepress' ) . '</p>';
}
/**
* @return string
*/
private function contact_the_admin() {
return '<p class="contact-the-admin">' . esc_html__( 'You may need to contact your server administrator or your hosting company to install this extension.', 'sitepress' ) . '</p>';
}
/**
* @param string $message
*/
private function render_message( $message ) {
if ( $message ) {
$libxml_text = '<strong>libxml</strong>';
$libxml_link = '<a href="http://php.net/manual/en/book.libxml.php" target="_blank">http://php.net/manual/en/book.libxml.php</a>';
$libxml_php7_link = '<a href="https://wpml.org/errata/php-7-possible-issues-simplexml/?utm_source=plugin&utm_medium=gui&utm_campaign=wpmlcore" target="_blank">PHP 7: possible issues with simplexml</a>';
echo '<div class="icl-admin-message icl-admin-message-icl-admin-message-warning icl-admin-message-warning error">';
echo sprintf( $message, $libxml_text, $libxml_link, $libxml_php7_link );
echo '</div>';
}
}
}